Python 在3D软件光栅化器中沿X轴旋转相机时Z轴出现奇怪的缩放/减小
我的问题是,当我试图通过围绕原点(也是相机位置)旋转世界来模拟相机在X轴上的旋转(在我正在使用的基本光栅化器中)时,我旋转点的次数越多,就会出现奇怪的缩放 基本上,我绕X轴旋转一个3D点越多,它的Z值减少的越多,直到我旋转它超过180度,然后Z值开始再次增加,一旦总旋转=360度,就会重置 这就产生了相机旋转越快放大的效果,这根本不是我想要的 下面是我用来旋转向量的代码(python):Python 在3D软件光栅化器中沿X轴旋转相机时Z轴出现奇怪的缩放/减小,python,matrix,graphics,3d,rendering,Python,Matrix,Graphics,3d,Rendering,我的问题是,当我试图通过围绕原点(也是相机位置)旋转世界来模拟相机在X轴上的旋转(在我正在使用的基本光栅化器中)时,我旋转点的次数越多,就会出现奇怪的缩放 基本上,我绕X轴旋转一个3D点越多,它的Z值减少的越多,直到我旋转它超过180度,然后Z值开始再次增加,一旦总旋转=360度,就会重置 这就产生了相机旋转越快放大的效果,这根本不是我想要的 下面是我用来旋转向量的代码(python): def rotate(self,x,y,z): pitch = x roll = y
def rotate(self,x,y,z):
pitch = x
roll = y
yaw = z
cosa = math.cos(yaw)
sina = math.sin(yaw)
cosb = math.cos(pitch)
sinb = math.sin(pitch)
cosc = math.cos(roll)
sinc = math.sin(roll)
Axx = cosa*cosb
Axy = cosa*sinb*sinc - sina*cosc
Axz = cosa*sinb*cosc + sina*sinc
Ayx = sina*cosb
Ayy = sina*sinb*sinc + cosa*cosc
Ayz = sina*sinb*cosc - cosa*sinc
Azx = -sinb
Azy = cosb*sinc
Azz = cosb*cosc
self.x = Axx*self.x+Axy*self.y+Axz*self.z
self.y = Ayx*self.x+Ayy*self.y+Ayz*self.z
self.z = Azx*self.x+Azy*self.y+Azz*self.z
很抱歉,如果这看起来像是我希望有人能简单地为我解决所有的问题,我对3D渲染作为一个整体来说是新手,并不真正知道正确的术语来准确地表达我的问题