![]() |
Vektor Problem (3D)
Ich hab da ein Problem mit Vektoren:
Code:
Das soll ein Koordinatensystem sein :-D
^
| P2 | / | / | / | / |/--------P1 +------------------> P1 und P2 sind Vektoren. Sie kommen beide aus dem Ursprung des Koordinatensystems. Das ganze soll in 3D sein. Wenn ich jetzt P1 bewege, dann soll sich P2 entsprechend mitbewegen. Wie kann ich das realisieren? In 2D wäre das ja noch entsprechend einfach. Aber wie geht das in 3D? |
Re: Vektor Problem (3D)
Wo ist das Problem?
Um P1 zu bewegen, musst du einen Vektor hinzuaddieren. Addierst du denselben zu P2, bewegen sich beide gleich, also um denselben Betrag in dieselbe Richtung. Und ob es in 2D oder 3D ist, ist bei Vektoren doch auch egal?! Entweder ist dein Problem kein Problem oder ich hab's einfach nicht kapiert, was du machen willst ;c) Also sag's noch mal genauer... |
Re: Vektor Problem (3D)
Ähm, das meine ich nicht!
Das Verhältnis zu P1 und P2 soll immer gleich sein! OK, Beispiel:
Code:
So, jetzt verschiebe ich P1, und dann soll das so aussehen:
1 0 P2| /P1
P1: 1 P2: 1 |/ 0 0 | Schlecht zu sehen, aber zwischen P1 und P2 soll ein 45° Winkel sein.
Code:
Also P2 soll sich mit P1 immer entsprechend mitdrehen.
1 -1 P1\
P1:-1 P2: 0 \ 0 0 P2--\ Und der soll sich mitdrehen. Wie gesagt, in 2D ist das kein Problem, kann man einfach mit sin und cos machen. Aber wie macht man das in 3D? |
Re: Vektor Problem (3D)
Liste der Anhänge anzeigen (Anzahl: 1)
Sollte so gehen... Omega, phi und kappa sind die 3 Drehwinkel.
|
Re: Vektor Problem (3D)
Also ich kapier das überhaupt nicht.
Diese mathematischen Ausdrücke sagen mir überhaupt nichts. Und was für 3 Drehwinkel? Und wie sehen Omega, phi und kappa aus? Also ich brauch nur ne ganz einfache (*g*) Funktion, die als Eingabe 3 Punkte erwartet und einen Punkt ausgibt. Also nach diesem Schema:
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
T3DPunkt = record
X,Y,Z: Double end; ... function anpassen (P1alt, P1neu, P2alt: T3DPunkt): T3DPunkt; begin ... Result := P2neu; end; |
Re: Vektor Problem (3D)
Am besten wäre es, wenn der "Unterschied" zwischen P1 und P2 in einer seperaten Variable gespeichert werden kann, denn von P2 gibt es mehrere, und damit nicht jedesmal der "Unterschied" ausgerechnet werden muss. Spart CPU Zeit. Denn es gibt sehr sehr viele von P2. Und die Berechnung muss in Echtzeit stattfinden.
|
Re: Vektor Problem (3D)
Zitat:
Gruß, Tom |
Re: Vektor Problem (3D)
Was für eine Matrix M? In der pdf-Datei steht nirgendwo was davon. Da steht nur eine einzige Formel einfach so dahin geschrieben.
Und was musst du hier schon wieder neue Bezeichner einführen? Ich hab doch vohrin versucht einheitliche Bezeichner zu machen. Ich weis schon wieder nicht wofür die ganzen Bezeichner stehen. Ich hab von Vektorrechnug überhaupt keinen Plan. Das einzige was ich weis, ist, dass Vektoren in eine Richtung gehen, und dass man die einzelnen Koordinaten übereinanderschreibt. :wall: Also ich hoffe, dass ich das jetzt richtig verstanden habe, die 3 Drehwinkel sind der Unterschied zwischen P1alt und P2alt? (Bzw. P1neu und P2neu) Wie bekomme ich nun diese Drehwinkel aus P1alt & P2alt, und wie wende ich sie auf P1neu an, um P2neu herauszubekommen? |
Re: Vektor Problem (3D)
@MR321: Hier ein kleiner Tipp: Wenn du 3D-Spiele schreiben willst, solltest du schon mit der Vektorgeometrie vertraut sein.
|
Re: Vektor Problem (3D)
Ja, weis ich...
Wir sind aber noch nicht so weit in der Schule. Wir sind gerade erst bei Differenzialrechnung. Aber ich brauche das nunmal. Sonst funktioniert auch alles soweit in meiner 3D-Engine. Nur das Animationssystem funktioniert noch nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz