找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 691|回复: 1

[分享]:把点集转成image_button里的点

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-1-28 22:53:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
把点集转成image_button里的点.转过去后,就可以vector_image这些点了.
  1. <normalfont>
  2. (defun trans_image (ptn box midp x y sca / bl midxy p0 x1 xform xform1
  3.                          xform2 xform3 y1 str pt hi gn color
  4.                     )
  5.     (setq y1 (distance (car box) (last box))
  6.           x1 (distance (car box) (cadr box))
  7.     )
  8.     (if (< y1 1e-3) (setq y1 y))
  9.     (if (< x1 1e-3) (setq x1 x))
  10.     (setq bl (if (< (/ x x1) (/ y y1))
  11.                (/ x x1)
  12.                (/ y y1)
  13.              )
  14.     )
  15.     (setq bl (* bl sca))
  16.     (setq midxy (list (/ x 2.0) (/ y 2.0) 0))
  17.     (setq p0 (mapcar '(lambda (x y)  (- x y)) midxy midp ) )
  18.     (setq xForm (xdrx_matrix_identity 3))
  19.     (setq xform1 (xdrx_matrix_setTransLation xForm p0))
  20.     (setq ptn (mapcar '(lambda (x) (xdrx_point_transform x xform1) )ptn ))
  21.     (setq xform2 (mapcar
  22.                    '(lambda (x)
  23.                       (xdrx_matrix_setScale xform bl midxy)
  24.                     )
  25.                    ptn
  26.                  )
  27.     )
  28.     (setq ptn (mapcar
  29.                 '(lambda (x y)
  30.                    (xdrx_point_transform x y)
  31.                  )
  32.                 ptn
  33.                 xform2
  34.               )
  35.     )
  36.     (setq xform3 (mapcar
  37.                    '(lambda (x)
  38.                       (xdrx_matrix_setMirror xform (list midxy (polar midxy 0 1))
  39.                       )
  40.                     )
  41.                    ptn
  42.                  )
  43.     )
  44.     (setq ptn (mapcar
  45.                 '(lambda (x y)
  46.                    (xdrx_point_transform x y)
  47.                  )
  48.                 ptn xform3
  49.               )
  50.     )
  51.   )
  52. </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) )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-1-29 03:17:11 | 显示全部楼层

Re: [分享]:把点集转成image_button里的点

最初由 aeo 发布
[B]把点集转成image_button里的点.转过去后,就可以vector_image这些点了.
[code]<normalfont>
(defun trans_image (ptn box midp x y sca / bl midxy p0 x1 xform xform1
                         xform2 xform3 y1 str pt hi gn color
... [/B]


XDRX_API使用的很好,我见到的不多的朋友之一。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-19 20:35 , Processed in 0.264512 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表