|
|
Hi,
>wenn ich z.b.einen wuerfel um die x und y-achsen 45 grad drehe
>und die camera z.b. bei <0,0,-100> steht, sollten zwei ecken des
>wuerfels auf einen punkt projiziert werden.
>wird aber nichts - wieso???
>wenn ich den wuerfel ungedreht im ursprung lasse, die camera
>auf <1,1,-1>*100 setze und in richtung <-1,-1,1> richte, erhalte
>ich die korrkte projektion!
>wo liegt der fehler?
Nimm nur mal den Eckpunkt <1,1,-1) des Wuerfels. Diesen willst Du nun
ja auf die negative Z-Achse drehen, wobei der erste Schritt, naemlich
die Drehung mit 45 Grad um die Y-Achse korrekt ist, da der Schnitt des
Wuerfels mit der X-Z-Achse ein Quadrat ergibt. Der Punkt befindet sich
nach der Drehung dann bereits auf der Y-Z-Ebene an der Position
<0,1,-sqrt(1*1+1*1)>, also <0,1,-sqrt(2)>. Der Schnitt der Y-Z-Ebene
ergibt nun allerdings kein Quadrat mehr, sondern ein Rechteck. Die
Laenge des Vektors zum Eckpunkt <0,1,-sqrt(2)> ist dann
sqrt(0*0+1*1+2), also sqrt(3). Diesen Vektor musst Du also mit
w=arcsin(1/sqrt(3)) um die X-Achse drehen um ihn auf die Z-Achse auf
<0,0,-sqrt(3)> zu bringen.
Also kurz und gut, Du musst die 2. Drehung nicht mit 45 Grad, sondern
mit 35.26 Grad durchfuehren...
In English: The rotation has to be done by:
rotate y*45
rotate x*degrees(asin(1/sqrt(3))) // = 35.26 degrees
Ich hoffe das hilft Dir weiter.
Bye,
Friedemann
Friedemann Schmidt
Fri### [at] Stonescom
Raytracing-Gallery: http://www.rz.fhtw-berlin.de/~s0049669/
Post a reply to this message
|
|