Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Direct3D: Würfel zeichnen (https://www.delphipraxis.net/144473-direct3d-wuerfel-zeichnen.html)

Zacherl 8. Dez 2009 19:04


Direct3D: Würfel zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey,

der Titel ist etwas schlecht gewählt, aber mir fiel nichts besseres ein. Ich zeichne meinen Würfel momentan per ID3DXLine, was ich vorerst auch so lassen möchte. Mein wirkliches Problem ist, dass ich zwei Vektoren habe, die wenn man sie verbindet eine schräge Linie im Raum darstellen. Jetzt fehlt mir ein wenig Mathematik.

Und zwar möchte ich nun alle Ecken meines Kubus ermitteln, wobei dieser so erstellt werden soll, dass es so aussieht, als würde die gezeichnete Linie durch die untere und die obere Ecke des Würfels durchgehen. (siehe Anhang)

Hat jemand ne Idee, wie ich das anstellen könnte? Mit Vektoren habe ich schon so lange nichts mehr zu tun gehabt, dass mir das wage Wissen aus dem Matheunterricht nicht mehr so wirklich präsent ist :mrgreen:

Viele Grüße
Zacherl

Medium 8. Dez 2009 19:34

Re: Direct3D: Würfel zeichnen
 
Uhm, einfach eine Linie zwischen diesen 2 Punkten zusätzlich zeichenen, ganz wie auch die anderen alle? ;)

Wenn du den Richtungsvektor dazu haben willst: Wenn die eine Ecke A und die andere B ist, ist dieser einfach B-A. Den brauchst du ja aber nicht einmal!

Zacherl 8. Dez 2009 20:03

Re: Direct3D: Würfel zeichnen
 
Versteh ich nicht. Die Linie kann ich natürlich zeichen. Vermutlich habe ich mich schlecht ausgedrückt. Was muss ich machen, wenn ich beide Vektoren der Linie habe, um die Linie erstmal einfach zu verlängern? Normal ja mit einem Faktor multiplizieren, aber erstmal muss ich beide Vektoren ja noch irgendwie benutzen, um die Richtung zu bekommen. (ansonsten zeigt jeder Punkt zur Mitte der Karte)

Medium 8. Dez 2009 20:07

Re: Direct3D: Würfel zeichnen
 
Wie gesagt, einfach einen Vektor vom anderen subtrahieren. Das ganze mündet letztlich in eine einfache Geradengleichung der Form: P0 = A + t*B, wobei B bei dir die Differenz der zwei Eckpunkte ist durch die die Gerade verlaufen soll, und A ist einer dieser beiden so wie er ist. Mit t kannst du dann auf der Geraden "herumrutschen".

Edit: Dass die Linie wirklich durch die Ecken soll hatte ich erst so nicht verstanden :oops:

Zacherl 9. Dez 2009 19:29

Re: Direct3D: Würfel zeichnen
 
Ah danke, das hat geklappt. Hatte es fast genauso, wobei ich vergessen hatte, A nochmal zu addieren. 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.

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