我正在编写一个不使用矩阵的 3D 引擎,但它的旋转不起作用 目前我正在使用此代码进行轮换:
vertex.x = vertex.x * cos(theta) - vertex.y * sin(theta)
vertex.y = vertex.y * cos(theta) + vertex.x * sin(theta)
但是它不起作用并在旋转时挤压立方体: 目前我只想在一个轴(z)上旋转
我只想让立方体按照你的预期旋转。 这是正确的数学是什么?
典型的向量/矩阵运算错误:
vertex.x = vertex.x * cos(theta) - vertex.y * sin(theta)
vertex.y = vertex.y * cos(theta) + vertex.x * sin(theta) << vertex.x is already new here!
永远不要写入您不断更改的数据:
newVertex.x = vertex.x * cos(theta) - vertex.y * sin(theta)
newVertex.y = vertex.y * cos(theta) + vertex.x * sin(theta)