mathematische Ebenengleichung into Blitz3d

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Wiko08

Betreff: mathematische Ebenengleichung into Blitz3d

BeitragDi, Mai 06, 2008 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
HI!
folgendes problem, an dem mich schon seit getsern mittag reibe:

ich habe eine ebenegleichung der form: bspw. 2x1 - 2x2 - x3 - 10 = 0 (Normalenform),
habe also den normalenvektor 2/-2/-1

ich möchte diese ebene nun in blitzbasic3d darstellen mit der richtige position und dem richtigen "winkel"
als ebene nehme ich einfach einen cubus, den ich platt drücke und strecke.

wie aber bekomm ich den winkel raus?
meine überlegung war:
den schnittwinkel mit den koordinaten ebenen x1-x2 bzw. x2-x3 auszurechnen und dann über rotateentity dann als yaw und pitch den eingeben.

das funzt nicht!

also, hat jemand bitte eine idee???

hier ist mein code

;die ebenengleichung der x2-x3 ebene lautet: (x-p)*(1/0/0) =0; n = (1/0/0) -> Schnittwinkel der angebenen Ebene mit x2-x3:

Code: [AUSKLAPPEN]
Alpha# = ACos# ( (n1*1 + n2*0 + n3*0)/ ( (Sqr(n1^2 +n2^2+n3^2)) * (Sqr(1 + 0 + 0)) ))



;die ebenengleichung der x1-x2 ebene lautet: (x-p)*(0/0/1) =0; n = (0/0/1) -> Schnittwinkel der angebenen Ebene mit x1-x2:

Code: [AUSKLAPPEN]
Beta# = ACos# ((n1*0 + n2*0 + n3*1)/ ( (Sqr(n1^2 +n2^2+n3^2)) * (Sqr(0 + 1 + 0)) ))


Code: [AUSKLAPPEN]
RotateEntity Tangentialebene, beta#, alpha#,0

Noobody

BeitragDi, Mai 06, 2008 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht sehr viel einfacher, indem du die Skalare des Normalenvektors bei VectorPitch bzw. VectorYaw angibst.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Mr.Keks

BeitragDi, Mai 06, 2008 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
oder noch direkter mit AlignToVector =)
MrKeks.net
 

Wiko08

BeitragDi, Mai 06, 2008 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
HI

wie soll das mit vectorpitch gehen
ich habe mir zwar schon die hilfe durchgelesen aber ich sehen nicht den zusammenhang zwischen meiner normalenformel (oder den scalaren) und dem befehl...??

danke

Vertex

BeitragMi, Mai 07, 2008 0:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie Mr. Keks schon sagte AlignToVector. Eine Ebene kann man durch den Normalvektor n und die Distanz d angeben. Um sie darstellen zu können, richtest du dein Quad mit AlignToVector in Richtung n aus und verschiebst dann mit MoveEntity das Quad vom Ursprung um d. Du brauchst dazu die Hessesche Normalform der Ebene wo für jeden Punkt P auf der Ebene P*n = d gilt.

mfg olli
vertex.dreamfall.at | GitHub

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group