iCAx开思网
标题:
uf5942_
[打印本页]
作者:
xialin1
时间:
2005-11-22 09:37
标题:
uf5942_
请问 (uf_trns.h)
extern void
uf5942
_ (
double * rp1,
double * rp2,
double * rr3 );
double * rp1 Input Matrix Number 1. This must be a 16 element array.
/这其中的16个元素应该怎么写? 能举个例子吗?
double * rp2 Input Matrix Number 2. This must be a 16 element array.
/这其中的16个元素应该怎么写? 能举个例子吗?
double * rr3 Output Product Matrix. This must be a 16 element array.
请指教,谢谢!
作者:
xialin1
时间:
2005-12-5 12:23
这是一个执行UG "变换"的函数,能帮我解释一下函数中的 rp1 该如何用,怎么赋值?
谢谢!
作者:
supergirl
时间:
2005-12-6 11:57
我记得好像应该是double 12的,UF的uf_trns.h中的大部分说明都要求输入16的double,结果你做程序的时候发现应该是12的才对。不过不管12还是16其实都是一个意思
UG中用一个4X4的矩阵来表示 一个xform或者一个坐标系。double ele[16];
0 4 8 12 x1 y1 z1 0
1 5 9 13 对应于 x2 y2 z2 0
2 6 10 14 x3 y3 z3 0
3 7 11 15 t1 t2 t3 s
其中左上角x, y ,z的那个3X3是旋转矩阵(一般要求是单位正交矩阵), t是平移的量或者坐标系原点坐标,S一般是1,表示放大的倍数。其实和图形学中的齐次矩阵是一样的,不过UG中好像转了一下秩的。
在早期的UF的函数中一般用double ele[12]来表示这个矩阵,我估计是早期为了节约内存空间吧。对应于
0 4 8 X
1 5 9 X 三个X为0的地方它就不算进去了。
2 6 10 X
3 7 11 12
你的这个函数uf5942是求两个矩阵相乘的。如果连矩阵相乘也不明白,请参见高等数学或者线性代数XX页,呵呵。
[
本帖最后由 supergirl 于 2005-12-6 16:15 编辑
]
作者:
xialin1
时间:
2005-12-7 09:46
太谢谢了!你解决我的大问题了!
以后有问题,还请你多指教!
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3