马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
把点集转成image_button里的点.转过去后,就可以vector_image这些点了.
- <normalfont>
- (defun trans_image (ptn box midp x y sca / bl midxy p0 x1 xform xform1
- xform2 xform3 y1 str pt hi gn color
- )
- (setq y1 (distance (car box) (last box))
- x1 (distance (car box) (cadr box))
- )
- (if (< y1 1e-3) (setq y1 y))
- (if (< x1 1e-3) (setq x1 x))
- (setq bl (if (< (/ x x1) (/ y y1))
- (/ x x1)
- (/ y y1)
- )
- )
- (setq bl (* bl sca))
- (setq midxy (list (/ x 2.0) (/ y 2.0) 0))
- (setq p0 (mapcar '(lambda (x y) (- x y)) midxy midp ) )
- (setq xForm (xdrx_matrix_identity 3))
- (setq xform1 (xdrx_matrix_setTransLation xForm p0))
- (setq ptn (mapcar '(lambda (x) (xdrx_point_transform x xform1) )ptn ))
- (setq xform2 (mapcar
- '(lambda (x)
- (xdrx_matrix_setScale xform bl midxy)
- )
- ptn
- )
- )
- (setq ptn (mapcar
- '(lambda (x y)
- (xdrx_point_transform x y)
- )
- ptn
- xform2
- )
- )
- (setq xform3 (mapcar
- '(lambda (x)
- (xdrx_matrix_setMirror xform (list midxy (polar midxy 0 1))
- )
- )
- ptn
- )
- )
- (setq ptn (mapcar
- '(lambda (x y)
- (xdrx_point_transform x y)
- )
- ptn xform3
- )
- )
- )
- </font>
1.ptn: 要转到image_button 的点表.
2.box: 你所要转到image_button 所有点的外框,这四点对应着image_button 的四个角
3.midp: 这一点对应image_button 的中心点.如果要居中,就是box的中心
4.x y : image_button 的x y
5.sca: 这么多点在image_button 里占的比例,1的话充满.
如果居中,box就可以(setq box (apply 'xdrx_pointsbox ptn) ) |