Re: [請益] 想請教Ogre內的SVD函式

看板GameDesign (遊戲設計)作者 (我要加油)時間15年前 (2010/03/03 12:38), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《blackchicke (我要加油)》之銘言: : 這兩天一直在試Ogre::Matrix3內的SVD函式,看它的API的用法是 : void Ogre::Matrix3::SingularValueDecomposition ( Matrix3 & rkL, : Vector3 & rkS, : Matrix3 & rkR : ) const : 於是我就試了一下這個函式用法(程式碼如下) : Matrix3 *ma = new Matrix3(4.0f,0.0f,0.0f : ,3.0f,-5.0f,0.0f : ,0.0f,0.0f,1.0f); : Matrix3 R; : Matrix3 L; : Vector3 S; : ma->SingularValueDecomposition(L , S , R); : 想說這樣出來L,S,R的結果就會是我的SVD內的V,S,U....可是出來的結果一直都不對 : 因為我這邊有上述矩陣分解的答案了, 想請問有用過Ogre的SVD函式分解的人 : 是我的函式用法錯誤嗎??還是這個函式不是用來作SVD的(那它函式名稱何必寫 : SingularValueDecomposition...>.<) : 希望版上的大家給我一些指引,我卡很久了真的不知道問題出在哪裡,先謝謝大家了^^ : 順便附上V,S,U的正確答案 : V = 0.7071 -0.7071 0 S = 6.3245 0 0 : 0.7071 0.7071 0 0 3.1622 0 : 0 0 1 0 0 1 : U = 0.4472 0.8944 0 : 0.8944 -0.4472 0 : 0 0 1 Ogre出來的值 rkL = -0.94868 0.31622 0 rkS = 5 0 0 -0.31622 -0.94868 0 0 4 0 0 0 1 0 0 1 rkR = -0.94868 0.31622 0 0.31622 0.94868 0 0 0 1 rkS儲存的方式是Vector3,x,y,z分別是5,4,1, 我想說應該就是求出來的eigenvalue,所以就有這樣子的猜想, 麻煩有用過的人了,因為API也沒有寫怎麼用,不知道問題出在哪,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.184.180

03/03 13:45, , 1F
ogre有source code 你要不要trace一下它怎麼算的?
03/03 13:45, 1F

03/03 13:57, , 2F
我有看過了...可是看不太懂他寫的內容
03/03 13:57, 2F

03/03 13:59, , 3F
想說問問看板上有沒有人用過>.<
03/03 13:59, 3F
文章代碼(AID): #1BZUVTt- (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #1BZUVTt- (GameDesign)