明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1859|回复: 7

获取光标位置

[复制链接]
发表于 2004-6-4 15:04:00 | 显示全部楼层 |阅读模式
如果获取光标所在的像素点,和左下角、右上角的像素点
发表于 2004-6-4 17:10:00 | 显示全部楼层

SCREENSIZE 系統變數(唯讀)
類型:2D 點
不儲存

儲存目前視埠的尺寸 (X 和 Y),以像素為單位。

VIEWCTR系統變數(唯讀)

類型:3D 點
儲存於:圖面

儲存目前視埠內的視景中心點。以 UCS 座標表示。

再比較光标位置,再計算

 楼主| 发表于 2004-6-5 14:25:00 | 显示全部楼层
中心点的UCS能获取,却又不知像素点的坐标啊,


它们的单位不一样,怎么比较?
发表于 2004-6-7 09:19:00 | 显示全部楼层

看看这个例子

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=7081&replyID=26614

 楼主| 发表于 2004-6-7 09:51:00 | 显示全部楼层
这样也不行啊,返回的都只是UCS坐标,如果能知道一点的UCS坐标和像素点坐标就行了,不知能否调用API函数GetCursorPos来返回该像素点坐标?
发表于 2004-6-7 12:29:00 | 显示全部楼层
像素点坐标的真正意义是甚么? 自己算一下即可!
发表于 2004-6-8 07:59:00 | 显示全部楼层
(defun C:TT (/ PT1)
(command "_.UCS" "V")
(while (/= 3 (car (setq PT1 (grread 5 1))))
(print (GETCURSORPOS (cadr PT1)))
)
(command "_.UCS" "p")
) (defun GETCURSORPOS (PT1 / CTR YSIZE SCREEN SCALE XSIZE LB XX YY)
(setq CTR (getvar "VIEWCTR"))
(setq YSIZE (getvar "VIEWSIZE"))
(setq SCREEN (getvar "SCREENSIZE"))
(setq SCALE (/ (car SCREEN) (cadr SCREEN)))
(setq XSIZE (* SCALE YSIZE))
(setq LB (list (- (car CTR) (/ XSIZE 2)) (- (cadr CTR) (/ YSIZE 2))))
(setq XX (- (car PT1) (car LB)))
(setq YY (- (cadr PT1) (cadr LB)))
(list (* (/ XX XSIZE) (car SCREEN))
(* (/ YY YSIZE) (cadr SCREEN))
)
)
 楼主| 发表于 2004-6-8 09:34:00 | 显示全部楼层
感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 09:24 , Processed in 0.259377 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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