如何计算圆柱体“顶部”圆心,给定旋转角度?

时间:2012-11-03 13:57:10

标签: java math 3d geometry java-3d

我有一个长度为2f的圆柱体,以及用户给出的RotX和RotZ的数据。我也知道我的圆柱体的“底部”位于(0,0,0)(圆圈的中心形成“底部”)

我需要的是计算在上面一行显示数据的“顶部”点(另一端的圆心)。

在我的第二张图像中,A点计算如下(sin(zAngle),cos(zAngle),sin(xAngle),zAngle = PI / 4(α角)和xAngle = 0。
B点计算为(sin(xAngle),cos(xAngle),sin(zAngle)),xAngle = PI / 4(β角)和zAngle = 0;
C点是圆柱体的“顶部”,xAngle = PI / 4,zAngle = PI / 4。
我需要找到一个算法来确定任何给定的xAngle和zAngle的“顶部”点。

如果有人能帮助我,我会非常感激。

RotZ and RotX explained Example

1 个答案:

答案 0 :(得分:2)

旋转前,顶部位于2f *(0,1,0)。

将圆柱绕z轴旋转角度α后,顶部为2f *(sin alpha,cos alpha,0)。

如果现在围绕x轴旋转圆柱β角,则顶部变为2f *(sin alpha,cos alpha * cos beta,cos alpha * sin beta)。