Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

höchster wert ermitteln

Empfohlene Antworten

Veröffentlicht

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




hmm kann sein das ich deine Frage nicht ganz verstehe.

1. max wert ermitteln, nun du könntest deine Listbox einfach sortieren, dann steht die Bogenlänge entweder im ersten bzw letzten Eintrag, diesen kannst du ja dann problemlos auslesen.

Oder du ermittelst die max Bogenlänge per code.

ne variable "maxBogenlaenge" erstellen, mit dem kleinstmöglichen wert belegen.

dann läst du ne Schleife über alle bogenlängen laufen und vergleichst maxBogenlaenge mit der Bogenlänge der aktuellen Position, ist der wert höher wird er in maxBogenlaenge geschrieben, etc

2. warum unbedingt ne picturebox? verwende das mschart, dem übergibst du deine werde z.b. per array. Wenn du die darstellung unbedingt in eine picturebox brauchst, kannste das diagramm aus mschart über die zwischenablage in die picturebox kopieren, und dann entsprechend ausdrucken, als jpg etc speichern....

jma

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.