明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1754|回复: 8

求两点间X、Y距离的函数是什么

[复制链接]
发表于 2008-8-27 21:45 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-8-27 21:46:35 编辑

屏幕上取两点,比如:P1(x1,y1,0),P2(x2,y2,0)

怎么求得P1和P2之间分别X、Y方向的距离?4舍5入不要小数点.(不是两点之间的距离)

相当于是DIST命令最出来的X增量、Y增量。

另:怎么样将三维点转成二维点?

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2008-8-27 22:27 | 显示全部楼层
用群码值
发表于 2008-8-27 22:31 | 显示全部楼层

两点间的距离直接用X2-X1的绝对值就OK了.

三维点转成二维点CAD的帮助里面有

发表于 2008-8-28 08:49 | 显示全部楼层
(mapcar '(lambda (a b c) (abs (- a b))) P1 P2 '(0 0))
 楼主| 发表于 2008-8-28 09:58 | 显示全部楼层

感谢大家在帮忙。这问题解决了

可能又有新的问题了。

怎么判断P2点是在P1点的上方还是下方。是这样的:

以P1为基本点,如果P2点在P1点的上方,那Y的距离就是正数,反之Y的距离就为负的。

以P1为基本点,如果P2点在P1点的右边,那X的距离就是正数,反之X的距离就为负的。

想了很久,没搞懂怎么判读,当初几何也没学好。。

发表于 2008-8-28 10:11 | 显示全部楼层

根据角度判断比较简单

(setq a (angle p1 p2))

发表于 2008-8-28 12:37 | 显示全部楼层

(if (> (- (cadr p2) (cadr p1)) 0) (princ "P2点在P1点上方") (princ "P2点在P1点下方"))

(if (> (- (car p2) (car p1)) 0) (princ "P2点在P1点右边") (princ "P2点在P1点左边"))

注意:未判断坐标差为零的情况。

发表于 2008-8-28 15:58 | 显示全部楼层
我也遇到过这个问题,我使用的是6楼所说的弧度判断,感觉这样做最快捷
发表于 2008-8-28 19:53 | 显示全部楼层
henwuqing发表于2008-8-28 15:58:00我也遇到过这个问题,我使用的是6楼所说的弧度判断,感觉这样做最快捷

似乎全都忽略了p1与p2重合的情况

别怪我钻牛角尖

程序的健壮和完善很重要

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

本版积分规则

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

GMT+8, 2024-5-21 01:13 , Processed in 0.188423 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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