【问题标题】:How to calculate cylinder "top" circle center, given the angles of rotation?给定旋转角度,如何计算圆柱“顶部”圆心?
【发布时间】:2012-11-03 13:57:10
【问题描述】:

我有一个长度为 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 的“顶”点。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您现在将圆柱体绕 x 轴旋转角度 beta,顶部将变为 2f*(sin alpha, cos alpha*cos beta, cos alpha*sin beta)。

    【讨论】:

    • P.S.我看到你在数学部分发布了同样的问题。我同意那里的评论,即旋转矩阵是解决这个问题的好方法 - 易于实施和概念化。
    • 我确实使用旋转配合,因为这是 Transform3D 的工作方式。这是一个 4x4 的矩阵,上面的 3x3 矩阵代表旋转矩阵,但我不太确定如何确定端点。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多