0
我正在逆向设计游戏的关卡地图。级别中的每个对象都有3个用于定位(x,y,z)的浮点数和3个用于旋转的浮点数(x,y,z)。旋转关于点的顶点
当拉入3D程序时,许多物体坐标轴位于0,0,0(世界坐标轴),物体被拉离该点而不是被拉入并以世界坐标轴为中心。
这里是我的意思2D例如:
你有一个方形4顶点的(5,5),(5,10),(10,10),(10,5)和它的中心是(7.5,7,5)
我所需要的4顶点的要围绕其旋转0,0,而不是其中心(7.5,7.5)
我一直在使用下面的Python代码旋转的对象:
#vX,vY,vZ is the vector coords
#rx,rY,rZ is the rotation angles in degrees
#Xrotation
xX = vX
xY = vY * math.cos(rX) - vZ * math.sin(rX)
xZ = vY * math.sin(rX) + vZ * math.cos(rX)
#Yrotation
yX = xZ * math.sin(rY) + xX * math.cos(rY)
yY = xY
yZ = xZ * math.cos(rY) - xX * math.sin(rY)
#Zrotation
zX = yX * math.cos(rZ) - yY * math.sin(rZ)
zY = yX * math.sin(rZ) + yY * math.cos(rZ)
zZ = yZ
#zX,zY,zZ is what gets outputted
上述代码旋转对象围绕其中心而不是世界轴线0,0,0。我不知道如何修改上述计算来旋转世界坐标轴上的对象。
我一直在寻找这里和其他地方的很多其他类似的问题,我的大脑即将爆炸成希腊符号池。
任何帮助或方向将非常感谢!
是的,这是我一直在读的其他地方,但这需要在每个顶点级别完成,而不是完成整个对象。为了更清楚一点,我将包含在自定义网格格式中的对象转换为波前OBJ格式,而不是尝试将自定义格式加载到引擎或其他内容中。 – clrx 2014-10-30 13:01:28