【问题标题】:What kind of math equation would you use to rotate vertices on a 3d plane around certain point?你会使用什么样的数学方程来围绕某个点在 3d 平面上旋转顶点?
【发布时间】:2014-03-21 14:23:01
【问题描述】:

我和我的朋友正在使用 Visual Basic 6 开发类似厄运的游戏。我们之前找到了一个示例程序,我们用来创建可以在 3D 平面上渲染顶点的东西。我们只能使用示例程序在顶点组角落的 Y 轴上旋转。但我们希望能够从不同的点旋转顶点。

What we are using to rotate vertices around origin point:

Temp(Current_Vertex).X = (Vertex_List(Current_Vertex).X * Cos(Angle_Y * RADIAN)) + (Vertex_List(Current_Vertex).Z * Sin(Angle_Y * RADIAN))
Temp(Current_Vertex).Y = Vertex_List(Current_Vertex).Y
Temp(Current_Vertex).Z = (Vertex_List(Current_Vertex).X * Sin(Angle_Y * RADIAN)) - (Vertex_List(Current_Vertex).Z * Cos(Angle_Y * RADIAN))

【问题讨论】:

    标签: math 3d vb6 vertices


    【解决方案1】:

    我会使用矩阵和线性代数:

    http://en.wikipedia.org/wiki/Rotation_matrix

    【讨论】:

    • 我们还没有完全理解旋转矩阵的工作原理。我们认为这就是我们正在做的事情。添加了另一种我们尝试过但不起作用的方法。
    • 你无法编写你不理解的代码。引文中的数学是正确的。如果你的代码不是,你应该仔细检查数学,看看你的代码翻译哪里出错了。找一个知道如何做矩阵乘法的人。
    • 我们已经能够围绕原点旋转顶点,但我们正试图围绕不同的点旋转它们。问题措辞很糟糕,所以我会尝试解决它。​​
    • @user3446820 要围绕另一个点旋转,您需要将旋转矩阵与平移矩阵相乘。 3D 平移矩阵是 4 行乘 4 列。是的,它变得复杂。我可以建议你深吸一口气,阅读一些 3D 矩阵教程吗?
    • 我知道它现在是如何工作的。显然,我们以前从未使用过这种东西,而且我们真的不知道如何开始提出这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多