所以我在玛雅有两个矩阵。我想反映一个矩阵关于另一个矩阵的x和y。在
例如:
对象1的矩阵如下: [1.0,0.0,0.0,0.0,0.0,0.70710678118654746,0.70710678118654757,0.0,0.0,-0.70710678118654757,0.70710678118654746,0.0,0.0,0.0,1.0] 这是一个在原点沿x旋转45度的物体
对象2的矩阵如下: [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,2.0,1.0] 坐在世界空间中的2,2,2,没有旋转值。在
在object1的scaleX上反射时,我们得到如下矩阵: [1.0,0.0,-0.0,0.0,-0.0,0.70710678118654746,-0.70710678118654757,0.0,0.70710678118654757,0.70710678118654746,0.0,2.0,2.8284271247461898,-2.22044604925031E-16,1.0]
当我手动反映对象的比例时,这只是我在查询矩阵。在pythonapi中实现这一点的方法是什么?在
我想用MTransformationMatrix做一些假设,但没能搞清楚。在
任何帮助将不胜感激!在
最后用向量来确定位置。将obj1和obj2替换为反射对象和要反射的对象。在
Formula for vector reflection
这是我按照你给我的想法去做的代码。很有道理了!在
在这个例子中,我只做了两个球体,并且能够在这些矩阵上反射。 编辑:修正此项以消除任何旋转。在
通常,您需要在API中创建一个MMatrix或MTransformationMatrix,然后将它们串联起来以获得所需的转换。麻烦是从Python中获取值到这些类中,这需要可怕的MScriptUtil
例如,将从python编号列表创建MMatrix。在Pymel中,使用Matrix类比较容易:
^{pr2}$将矩阵相乘后,可以使用xform命令应用它们:
或者在皮梅尔:
MMatrix是一个原始矩阵-只需要数字来进行数学运算MTransformationMatrix更像是对象的实际转换:它提供了一些方法,例如,在不知道哪些矩阵成员需要手动旋转的情况下,将数字插入平移或旋转:
所以在你的情况下,你应该:
1)获取目标对象的矩阵
2)获取反射对象的矩阵
3)制作反射矩阵,例如:
反射X轴和Z轴的反射矩阵
4)将目标反映为:
这是一个只使用mmatrics的最简版本-如果您需要自己构造矩阵,mttransformationmatrix将允许您设置旋转或缩放矩阵,而无需手动管理矩阵中的数字。在
相关问题 更多 >
编程相关推荐