Diagramm

Hallo,und schon wieder eine Frage. Muß in einem VB Programm ein Diagramm zeichnen.Dies soll ein V/T Diagramm sein.X achse soll die Fahrzeit t sein.Das heißt erhöhe ich die Fahrzeit, so soll sich auch die X _ koordinate sich abändern.Genau so soll es sich mit der Y-Achse verhalten( Geschwindigkeit V).Es sollen vier werteparre berechnet und eigezeichnet werden.Diese sollen mit linen im Diagramm verbunden werden.Habe es bereits in Excel gelöst.Wenn jemand das Excel beispiel zum besseren Verständnis benötigt, einfach melden.Hoffe das ich die Situation verständlich erklärt habe. Habe leider überhaupt keine Ahnung, wie ich an die Sache gehen muß.Danke im voraus.

Ein Diagramm mit verbundenen Linien habe ich folgendermaßen gelöst:

Die Nullstelle (x und y gleich 0) muss erst definiert werden, man benötigt natürlich genug Abstand vom oberen und linken Rand der Form. Als Wert nehmen wir einfach mal NullX = 10200 und NullY = 10200, damit ist die Nullstelle des Koordinatenkreuzes 10200 twips vom oberen und linken Rand entfernt

Danach muss erstmal muss ein Koordinatenkreuz gezeichnet werden, damit lassen sich dann gleich prima die Maximal- und Minimalwerte für x und y festlegen. Erstmal zeichnen wir alle 4 Linien des Koordinatenkreuzes:

Line (NullX - 10000, NullY) - (NullX + 10000, NullY)
Line (NullY - 10000, NullX) - (NullY + 10000, NullX)

Wenn man keine negativen Werte braucht kann man die ‚- 10000‘ jeweils weglassen und die Nullstellen näher zum linken Rand legen.

Wenn wir jetzt einen Wert haben (t = 4 Stunden, und V = 100 km/h) muss dieser nur vernünftig umgerechnet werden und kann in das Diagramm eingetragen werden (Als Beispiel 1 Stunde = 1000 Twips und 10 km/h = 500 Twips) Danach wäre X = 4000 und Y = 5000.

Aber wir brauchen ja mehrere Werte, wegen der Linie also: p1(4/100); p2(5/80); p3(6/60)


dim NullX
dim NullY 'Nullstellen wie oben
dim FromX 'STart für die Linie
dim FromY 'dto
dim ToX 'Endpunkt der Linie
dim ToY 'dto


hier dann das Nullstellenzeugs und das Koordinatenkreuz zeichnen

for i = 0 to Recordset.RecordCount 'Wichtig für Datenbanken
Select Case i
Case 1 'Erste Linie startet bei 0
FromX = NullX
FromY = NullY
ToX = NullX + Recordset.Fields(„Wert_für_T_in_Stunden“) * 1000
ToY = NullY + Recordset.Fields(„Wert_für_V_in_kmh“) / 10 * 500
line (FromX, FromY) - (ToX, ToY)
Case else
FromX = ToX
FromY = ToY
Recordset.MoveNext
ToX = NullX + Recordset.Fields(„Wert_für_T_in_Stunden“) * 1000
ToY = NullY + Recordset.Fields(„Wert_für_V_in_kmh“) / 10 * 500
line (FromX, FromY) - (ToX, ToY)
end select
next

PS: Die zu zeichnenden Werte sollten vorher in eine sinnvolle Reihenfolge gebracht werden, damit da keine wilden Linien gezeichnet werden. Falls irgendwelche Fragen auftauchen, kein Problem… :smile:

Das Listing lässt sich auf Userforms etc. anwenden…

PPS: Sorry, ich konnte den Text nicht einrücken.