Entwickler-Ecke
Multimedia / Grafik - Vektoren zeichnen, aber wie?
Pyr0cracker - Mi 02.04.03 12:59
Titel: Vektoren zeichnen, aber wie?
Hi, ich hab mal wieder nen kleines problem.
also, ich will ein Programm schreiben, das Vektoren errechnet und zeichnet. Dabei weiss ich nichts über das zeichnen.
kann mir jemand weiterhelfen?
gruß,
inselberg - Mi 02.04.03 13:04
in welchem raum ?
2 dimensionalem, 3 dim oder n-dim
weil n dim. (n > 3) würd mich auch mal interessieren ;)
Pyr0cracker - Mi 02.04.03 18:23
nur 2d, in der form
(war das so?)
| Zitat: |
| n dim. (n > 3) würd mich auch mal interessieren |
wie soll denn das gehen?
Alibi - Mi 02.04.03 18:45
Einen 2D Vektor zu zeichnen auf einem Canvas dürfte doch nicht schwer sein.
Nimm ein Achsenkreuz und zeichne einen Strich vom Nullpunkt zu dem Punkt, auf den der Vektor zeigt. Bei (1 1) wäre das ein Strich von 0 zu (1/1). Ein Pfeil auf dem Punkt wäre natürlich auch noch angebracht. :)
Pyr0cracker - Mi 02.04.03 18:57
tut mir leid, kann ich noch nicht, kannst du mir ein kleines code bsp geben?
gruß,
Alibi - Mi 02.04.03 19:14
Hi,
können: NP, machen: Nein. :)
Der Grund ist einfach, wenn du dich intensiver mit dem Thema beschäftigst lernst du wirklich ne Menge. :)
Paar Hinweise sind natürlich nicht verkehrt.
Delphis Koordinatensystem beginnt dummerweise oben Links. Du hast sicherlich schonmal bemerkt, dass ein größerer Top-Wert (Praktisch die Y-Achse) eine Komponente weiter nach unten anstatt nach oben setzt. :)
Du müsstest also den Mittelpunkt umbauen und die Y-Achsen-Richtung umkehren.
Das ist leicht, einfach die Hälfte der Zeichenfläch zu den Zielkoordinaten hinzuaddieren und bei dem Y-Wert das umgekehrte Vorzeichen nehmen.
Dann ist noch die Längeneinheit von 1 Pixel lästig, bisschen klein. Einfach die fertigen Koordinaten mit der Wunschlänge multiplizieren.
Beispiel, die Koordinate 1/2 mit einer Längeneinheit von 20 Pixeln:
x := (1 + (Image1.Width / div 2)) * 20;
y :=- (2 + (Image1.Height div 2)) * 20;
Mit Canvas.MoveTo gehst du zum gewünschten Startpunkt der Linie, 0/0. Also in dem Fall (Image1.Width Div 2)/(Image1.Height div 2).
Und mit LineTo zeichnest du dann die Linie.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!