作者blackchicke (我要加油)
看板GameDesign
标题Re: [请益] 想请教Ogre内的SVD函式
时间Wed Mar 3 12:38:50 2010
※ 引述《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
1F:→ Splash5:ogre有source code 你要不要trace一下它怎麽算的? 03/03 13:45
2F:→ blackchicke:我有看过了...可是看不太懂他写的内容 03/03 13:57
3F:→ blackchicke:想说问问看板上有没有人用过>.< 03/03 13:59