(xdrx_matrix_identity 3) ;产生一个标准的4维矩阵((1 0 0 0)(0 1 0 0)(0 0 1 0)(0 0 0 1))(xdrx_matrix_product m2 m1) –>m1.m2 ;我的理解是m2作用于m1,物体先经过m1的转化,再m2转化.所以一定要注意先后。m1.m2.m3.m4.m5–> (product (product (product (product m5 m4)m3)m2)m1)xdrx_matrix_setmirror --> ((1 0 0 0)(0 1 0 0)(0 0 -1 0)(0 0 0 1))作用于点(x y z),那么就z变为负值了.;;;转换点;;; pt (x y z 1);;; mat (x0 x1 x2 x3)(y0 y1 y2 y3)(z0 z1 z2 z3)(0 0 0 1);;;–> ( (x0*x + x1*y + x2*z + x3*1);;; (y0*x + y1*y + y2*z + y3*1);;; (z0*x + z1*Y + z2*z + z3*1);;; 1;;; )
为什么连续执行3次返回不同的结果??(setqn1 ‘((1 0 0 0)(0 1 0 0)(0 0 1 0)(0 0 0 1))n2 ‘((2 0 0 1)(0 2 0 1)(0 0 0 1)(0 0 0 1))n3 ‘((1.4 1.4 0 0)(-1.4 1.4 0 0)(0 0 0 0)(0 0 0 1)))(xdrx_matrix_product n1 n2)连续执行3次,返回:((0.0 0.0 0.0 0.0) (2.3643e+156 0.0 1.4 0.0) (1.4 0.0 1.4 1.4) (-1.4 1.4 0.0 1.4))_$((0.0 0.0 0.0 0.0) (2.94378e+303 2.94336e+303 2.94294e+303 0.0) (0.0 0.0 0.0 0.0) (0.0 0.0 0.0 0.0))_$((0.0 4.16179e+303 4.18278e+303 4.18257e+303) (4.16118e+303 4.18219e+303 4.16101e+303 0.0) (0.0 0.0 2.84719e+303 0.0) (0.0 2.84719e+303 0.0 0.0))_$((0.0 0.0 0.0 15.0) (-3065.79 0.0 0.0 0.0) (0.0 0.0 0.0 15.0) (-3065.79 0.0 0.0 0.0))
xdrx_matrix_product它不能判断整数和浮点数.(xdrx_matrix_product n1 n2) —>都是0 …(setqn1 ‘((1. 0. 0 0)(0 1. 0. 0.)(0. 0. 1. 0)(0. 0. 0. 1.))n2 ‘((2. 0. 0. 1.)(0 2. 0. 1.)(0 0 0 1.)(0. 0 0 1.))n3 ‘((1.4 1.4 0 0)(-1.4 1.4 0 0)(0 0 0 0)(0 0 0 1)))(xdrx_matrix_product n1 n2) –>((2.0 0.0 0.0 1.0) (0.0 2.0 0.0 1.0) (0.0 0.0 0.0 1.0) (0.0 0.0 0.0 1.0))
(xdrx_matrix_identity 3) ;产生一个标准的4维矩阵((1 0 0 0)(0 1 0 0)(0 0 1 0)(0 0 0 1))
(xdrx_matrix_product m2 m1) –>m1.m2 ;我的理解是m2作用于m1,物体先经过m1的转化,再m2转化.
所以一定要注意先后。
m1.m2.m3.m4.m5–> (product (product (product (product m5 m4)m3)m2)m1)
xdrx_matrix_setmirror --> ((1 0 0 0)(0 1 0 0)(0 0 -1 0)(0 0 0 1))
作用于点(x y z),那么就z变为负值了.
;;;转换点
;;; pt (x y z 1)
;;; mat (x0 x1 x2 x3)(y0 y1 y2 y3)(z0 z1 z2 z3)(0 0 0 1)
;;;–> ( (x0*x + x1*y + x2*z + x3*1)
;;; (y0*x + y1*y + y2*z + y3*1)
;;; (z0*x + z1*Y + z2*z + z3*1)
;;; 1
;;; )
为什么连续执行3次返回不同的结果??
(setq
n1 ‘((1 0 0 0)(0 1 0 0)(0 0 1 0)(0 0 0 1))
n2 ‘((2 0 0 1)(0 2 0 1)(0 0 0 1)(0 0 0 1))
n3 ‘((1.4 1.4 0 0)(-1.4 1.4 0 0)(0 0 0 0)(0 0 0 1))
)
(xdrx_matrix_product n1 n2)
连续执行3次,返回:
((0.0 0.0 0.0 0.0) (2.3643e+156 0.0 1.4 0.0) (1.4 0.0 1.4 1.4) (-1.4 1.4 0.0 1.4))
_$
((0.0 0.0 0.0 0.0) (2.94378e+303 2.94336e+303 2.94294e+303 0.0) (0.0 0.0 0.0 0.0) (0.0 0.0 0.0 0.0))
_$
((0.0 4.16179e+303 4.18278e+303 4.18257e+303) (4.16118e+303 4.18219e+303 4.16101e+303 0.0) (0.0 0.0 2.84719e+303 0.0) (0.0 2.84719e+303 0.0 0.0))
_$
((0.0 0.0 0.0 15.0) (-3065.79 0.0 0.0 0.0) (0.0 0.0 0.0 15.0) (-3065.79 0.0 0.0 0.0))
xdrx_matrix_product
它不能判断整数和浮点数.
(xdrx_matrix_product n1 n2) —>都是0 …
(setq
n1 ‘((1. 0. 0 0)(0 1. 0. 0.)(0. 0. 1. 0)(0. 0. 0. 1.))
n2 ‘((2. 0. 0. 1.)(0 2. 0. 1.)(0 0 0 1.)(0. 0 0 1.))
n3 ‘((1.4 1.4 0 0)(-1.4 1.4 0 0)(0 0 0 0)(0 0 0 1))
)
(xdrx_matrix_product n1 n2) –>((2.0 0.0 0.0 1.0) (0.0 2.0 0.0 1.0) (0.0 0.0 0.0 1.0) (0.0 0.0 0.0 1.0))