Math 你会使用什么样的数学方程来围绕某个点旋转3d平面上的顶点?

Math 你会使用什么样的数学方程来围绕某个点旋转3d平面上的顶点?,math,3d,vb6,vertices,Math,3d,Vb6,Vertices,我的朋友和我正在用VisualBasic6开发一个类似厄运的游戏。我们之前发现了一个示例程序,用于创建可以在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)) +

我的朋友和我正在用VisualBasic6开发一个类似厄运的游戏。我们之前发现了一个示例程序,用于创建可以在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))

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


我们还没有完全理解旋转矩阵是如何工作的。我们以为这就是我们在做的。添加了另一个我们尝试过的无效方法。您无法编写您不理解的代码。引文中的数学是正确的。如果你的代码不正确,你应该仔细检查数学,看看你的代码翻译哪里出错了。找一个知道如何进行矩阵互应用的人。我们已经能够围绕原点旋转顶点,但我们正在尝试围绕另一个点旋转它们。这个问题的措辞非常糟糕,所以我将尝试修复它。@user3446820若要围绕另一个点旋转,需要将旋转矩阵与平移矩阵相乘。3D中的平移矩阵是4行4列。是的,事情变得复杂了。我可以建议你深呼吸,读一些3D矩阵教程吗?我现在明白了。很明显,我们以前从未使用过这种东西,我们也不知道如何从一开始就提出这个问题。