Zum Inhalt springen

cameleon

Mitglieder
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von cameleon

  1. hallo zusammen ich habe hier ein problem und zwar habe ich mit hilfe eines kollegen die folgende berechnung zur bogenlängenberechnnung gemacht ....siehe code. Alle Bogenlängen werden berechnet und in der listbox ausgegeben ...das alles funktioniert. Benötigt werden eine button, eine picturebox und eine liste. Nun möchte ich das die längste bogenlänge ermittelt wird und alle diese wie ein diagramm in der picturebox dargestellt werden. Ich brauche hierfür nur die endpunkte also pset . wie kann ich das tun ? Option Explicit ' Explizite Variablendeklaration erzwingen ' Ein Kreis: Private Type T_Kreis X As Double Y As Double Radius As Double End Type ' Ein 2D-punkt. Private Type T_Point X As Double Y As Double End Type Const PI = 3.14 ' Berechnet des arcsin einer Zahl: Public Function Arkuskosinus(X As Double) If X = 1 Or X = -1 Then Arkuskosinus = 0 Else Arkuskosinus = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) End If End Function Private Sub Command1_Click() Dim Grau As Long Grau = RGB(120, 120, 120) List1.Clear ' Der Kleine Kreis wird deklariert: Dim Klein As T_Kreis Klein.X = 200 Klein.Y = 100 Klein.Radius = 50 ' der Große Kreis wird deklariert: Dim Groß As T_Kreis Groß.X = 200 Groß.Y = 200 Groß.Radius = 150 ' beide Kreise werden ausgegeben: Picture1.Circle (Klein.X, Klein.Y), Klein.Radius, Grau Picture1.Circle (Groß.X, Groß.Y), Groß.Radius, Grau Picture1.PSet (Klein.X, Klein.Y), vbBlack Picture1.PSet (Groß.X, Groß.Y), vbBlack Dim alpha As Double, beta As Double Dim Punkt As T_Point, Punkt2 As T_Point Dim Akt_Radius As Double ' radius des aktuellen Kreisbogens ' alle Winkel von 0 bis PI werden durchlaufen. ' dabei stellt Punkt die linke und Punkt2 die rechte Grenze des Kreisbogens dar. For alpha = 0 To PI Step 0.5 Punkt.X = Klein.X - (Klein.Radius * Sin(alpha)) Punkt.Y = Klein.Y - (Klein.Radius * Cos(alpha)) Picture1.PSet (Punkt.X, Punkt.Y), vbRed Punkt2.X = Klein.X + (Klein.Radius * Sin(alpha)) Punkt2.Y = Punkt.Y Picture1.PSet (Punkt2.X, Punkt2.Y), vbBlue ' der aktuelle Kreisbogen wird gezeichnet: Akt_Radius = Sqr((Groß.X - Punkt.X) ^ 2 + (Groß.Y - Punkt.Y) ^ 2) beta = Arkuskosinus((Groß.Y - Punkt.Y) / Akt_Radius) If beta <> 0 Then Picture1.Circle (Groß.X, Groß.Y), Akt_Radius, , (PI / 2) - beta, (PI / 2) + beta List1.AddItem "Winkel: " & CStr(beta) & "; Länge: " & (Akt_Radius * 2 * beta) End If Next alpha End Sub Private Sub Form_Load() Picture1.ScaleMode = 3 Picture1.DrawWidth = 2 Picture1.BackColor = vbWhite End Sub

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...