我在Autodesk Maya中使用Python編程函數(使用PyMel for Maya)在Python中仿射3D轉換
我有三個3D點; p0,p1,p2。然後他們做了一個嚴格的轉換,所以在轉換之後(仿射變換),我有了他們的新位置; q0,q1,q2。
我也有轉型前的第四點; P3。我想在相同的轉換之後計算它的位置; Q4。
所以我需要計算轉換矩陣,然後將其應用於p4。我也不知道該怎麼做。 List =一組對象
import pymel.core as pm
import pymel.core.datatypes as dt
p0 = dt.Vector(pm.getAttr(list[0]+".tx"), pm.getAttr(list[0]+".ty"), pm.getAttr(list[0]+".tz"))
p1 = dt.Vector(pm.getAttr(list[1]+".tx"), pm.getAttr(list[1]+".ty"), pm.getAttr(list[1]+".tz"))
p2 = dt.Vector(pm.getAttr(list[2]+".tx"), pm.getAttr(list[2]+".ty"), pm.getAttr(list[2]+".tz")
p3 = dt.Vector(pm.getAttr(list[3]+".tx"), pm.getAttr(list[3]+".ty"), pm.getAttr(list[3]+".tz"))
從Maya場景中的動畫對象中讀取3D點。因此,在另一幀, 我運行此代碼以獲得
q0 = dt.Vector(pm.getAttr(list[0]+".tx"), pm.getAttr(list[0]+".ty"), pm.getAttr(list[0]+".tz"))
q1 = dt.Vector(pm.getAttr(list[1]+".tx"), pm.getAttr(list[1]+".ty"), pm.getAttr(list[1]+".tz"))
q2 = dt.Vector(pm.getAttr(list[2]+".tx"), pm.getAttr(list[2]+".ty"), pm.getAttr(list[2]+".tz"))
#q3 = TransformationMatrix between (p0,p1,p2) and (q0,q1,q2), applied to p3
我試着用向量來計算的,但我結束了錯誤,由於被零師...... 所以我想,一個變換矩陣應解決它沒有問題。
我已經有一個截止日期不遠了,我真的需要幫助解決這個問題! 請幫助!
編輯: how to perform coordinates affine transformation using python?
我需要這個功能「solve_affine」,但它應該從每個組的而不是4只取3分,我不能使用numpy的...
考慮到本網站上很少有人會理解你的問題(因爲它是特定的),你最好的行動方式是發佈你的代碼,因爲我們可能真的能夠幫助你接着就,隨即。 – sshashank124
對不起,沒想到我的代碼會有任何幫助。我迄今爲止所做的只是分配點數。我現在添加了它,希望它能讓我的問題更容易理解 – user1066278