2 (in-package :clem-test
)
4 (defun test-affine-transform ()
5 (let ((xfrm (make-affine-transformation :x-shift -
2d0
:y-shift -
3d0
:theta
(* -
.25 pi
)))
6 (coord1 (transpose (array->double-float-matrix
#2A
((10.0d0
20.0d0
1.0d0
)))))
7 (coord2 (transpose (array->double-float-matrix
#2A
((2d0 2d0
1d0
))))))
8 (let ((inv-xfrm (invert-matrix xfrm
)))
9 (print-matrix (mat-mult xfrm coord1
))
10 (print-matrix inv-xfrm
)
11 (let ((hc (mat-mult inv-xfrm coord2
)))
14 (defun test-affine-transform-2 ()
15 (let ((t1 (clem:make-affine-transformation
16 :x-shift
20d0
:y-shift
20d0
:theta
(/ (* 120 pi
) 180) :x-scale
(log 2) :y-scale
(log 2)))
17 (t2 (clem:make-affine-transformation
18 :x-shift
100d0
:y-shift
100d0
)))
19 (clem:print-matrix t1
)
20 (clem:print-matrix t2
)
21 (clem:print-matrix
(clem:mat-mult t2 t1
))))