2012-11-03 7 views
8

Ich habe einen Zylinder von 2f Länge, und die Daten für RotX und RotZ, vom Benutzer gegeben. Ich weiß auch, dass der "Boden" meines Zylinders bei (0,0,0) ist (die Mitte des Kreises bildet den "Boden").Wie berechnet man Zylinder "top" Kreismitte, angesichts der Drehwinkel?

Was ich brauche ist, um den "oberen" Punkt (das Zentrum) zu berechnen des Kreises am anderen Ende) mit den Daten in den oberen Zeilen freigelegt.

Im zweiten Bild wird der Punkt A wie folgt berechnet (sin (Zangle), cos (Zangle), sin (xAngle) mit Zangle = PI/4 (Winkel alpha) und xAngle = 0.
Punkt B berechnet wird als (sin (xAngle), cos (xAngle), sin (Zangle)) mit xAngle = PI/4 (beta-Winkel) und Zangle = 0;
C Punkt ist die "Spitze" einen Zylinders mit xAngle = PI/4 und Zangle = PI/4.
ich brauche einen Algorithmus zu finden, den „top“ Punkt für jede gegebene xAngle und Zangle zu bestimmen.

ich extrem dankbar sein würde, wenn mir jemand helfen könnte.

RotZ and RotX explained Example

Antwort

2

Vor Ihren Rotationen liegt die Spitze bei 2f * (0,1,0).

Nachdem Sie den Zylinder um die z-Achse um den Winkel alpha drehen, die Spitze ist bei 2f * (sin alpha, alpha cos, 0).

Wenn Sie nun den Zylinder durch den Winkel Beta um die x-Achse drehen, geht die oben bis 2f * (sin alpha, cos alpha * cos beta, cos alpha * sin beta).

+0

P.S. Ich sehe, Sie haben die gleiche Frage im Bereich Mathematik gestellt. Ich stimme dem Kommentar dort zu, dass Rotationsmatrizen ein guter Weg sind, dieses Problem anzugehen - einfach zu implementieren und zu konzeptualisieren. – nasenbohrer

+0

Ich benutze die Rotationsmatrizen, da so Transform3D funktioniert. Es ist eine Matrix von 4x4, wo die oberen 3x3 Matrix, die die Rotationsmatrix darstellt, aber ich war nicht ganz sicher, wie die Ende zu bestimmen. Vielen Dank –