Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Vektor Problem (3D) (https://www.delphipraxis.net/9774-vektor-problem-3d.html)

MR321 3. Okt 2003 21:17


Vektor Problem (3D)
 
Ich hab da ein Problem mit Vektoren:
Code:
^
|     P2
|    /
|   /
|  /
| /
|/--------P1
+------------------>
Das soll ein Koordinatensystem sein :-D
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?

OregonGhost 3. Okt 2003 22:05

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...

MR321 3. Okt 2003 22:11

Re: Vektor Problem (3D)
 
Ähm, das meine ich nicht!
Das Verhältnis zu P1 und P2 soll immer gleich sein!
OK, Beispiel:
Code:
    1      0     P2| /P1
P1: 1  P2: 1       |/   
    0      0       |       Schlecht zu sehen, aber zwischen P1 und P2 soll ein 45° Winkel sein.
So, jetzt verschiebe ich P1, und dann soll das so aussehen:
Code:
    1     -1    P1\
P1:-1  P2: 0       \
    0      0    P2--\      Und der soll sich mitdrehen.
Also P2 soll sich mit P1 immer entsprechend mitdrehen.
Wie gesagt, in 2D ist das kein Problem, kann man einfach mit sin und cos machen. Aber wie macht man das in 3D?

Jelly 3. Okt 2003 22:45

Re: Vektor Problem (3D)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sollte so gehen... Omega, phi und kappa sind die 3 Drehwinkel.

MR321 4. Okt 2003 12:19

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:
T3DPunkt = record
  X,Y,Z: Double
end;

...

function anpassen (P1alt, P1neu, P2alt: T3DPunkt): T3DPunkt;
begin
  ...
  Result := P2neu;
end;
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

MR321 4. Okt 2003 12:58

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.

Jelly 4. Okt 2003 14:25

Re: Vektor Problem (3D)
 
Zitat:

Zitat von MR321
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?

Das Ganze ist eine Matrix Multiplikation. Du gibst dir einen Vektor r_1 vor, wo du die 3 Koordinanten vorliegen hast. Daraud wendest du die angegebene Matrix M an, und kriegst dadurch die 3 Komponenten von vom Vektor r_2 raus... Die 3 Winkel sind die Drehwinkel (in rad angegeben) um deine 3 Raumachsen.

Gruß,
Tom

MR321 4. Okt 2003 19:46

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?

Dagon 4. Okt 2003 19:50

Re: Vektor Problem (3D)
 
@MR321: Hier ein kleiner Tipp: Wenn du 3D-Spiele schreiben willst, solltest du schon mit der Vektorgeometrie vertraut sein.

MR321 4. Okt 2003 19:55

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 01:27 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz