猿问

请问怎么求通过两个三角形的顶点坐标矩阵求出变换矩阵M2?

我要把一个顶点坐标已知的空间三角形通过与变换矩阵相乘实现和另一个顶点坐标已知的和它全等的三角形以法向量相对的方向重合。即对第一个三角形的坐标矩阵M1,进行 M1*M2(M2为变换矩阵)后就能实现与另一个全等三角形重合。(主要我是想在OpenGL中直接通过glLoadMatrix()实现复杂的模型视图变换)

开满天机
浏览 376回答 1
1回答

慕雪6442864

以楼主的描述,没有理解错误的话,应该是在同一个线性空间内实施坐标变换,对么?倘若如此,首先看原三角形坐标矩阵M1,描述M1矩阵的是与其同阶的单位矩阵E;再看变换后的三角形坐标矩阵M2,描述M2矩阵的是与其同阶的变换矩阵P。则有ExM1=PxM2,若视描述两个三角形坐标的均为从原点出发的向量,则这三个向量必线性无关(画出图来就好理解了)。向量线性无关,则对应的矩阵为非奇异矩阵,存在逆矩阵,则变换矩阵P=ExM1x(M2)*(-1),亦即M1与M2的逆的积。但是,又因为楼主的题设中存在“实现与另一个全等三角形重合”这样的条件,则变换矩阵P必须是实线性空间中的正交矩阵或者复线性空间中的酉矩阵。所以按照ExM1x(M2)*(-1)的方式求出P后,必须对P实施Schidmt正交化手续,使矩阵P各向量正交且单位化。PS:为了表述形式的统一,把楼主提到的M1和M2两个矩阵的定义改变了一下,P矩阵是变换矩阵,而不是M2(M2在我的论述中是描述变换后的三角形坐标的矩阵)。
随时随地看视频慕课网APP

相关分类

Unity 3D
CSS3
我要回答