明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2502|回复: 6

[讨论] 如何判断一点是不是在一条直线上?

[复制链接]
发表于 2009-12-20 16:01:00 | 显示全部楼层 |阅读模式
RT:想判断一点是不是在一条直线上,怎么才能做的到?请会的人,指教一下!!!
发表于 2009-12-20 17:16:00 | 显示全部楼层
(equal POINT (vlax-curve-getClosestPointTo ENAME POINT) 0.00001)
发表于 2009-12-20 19:22:00 | 显示全部楼层

根据直线的两点坐标,求出此直线方程式。然后将要判断的点代入这个直线方程即可。

发表于 2009-12-20 21:06:00 | 显示全部楼层
网站上有这样的函数
  1. ;;;函数:pntonline判断点在直线上的位置
  2. ;;;
  3. ;;;参数:
  4. ;;;
  5. ;;;p1,p2:直线上的两点,例如直线上的起点和端点
  6. ;;;p3:所要判断的点
  7. ;;;
  8. ;;;返回值:
  9. ;;;
  10. ;;;点的位置,等于0时(equal k 0.0 0.00000001)点在线上,
  11. ;;;大于0时点在线的左侧,小于0时点在线的右侧
  12. ;;;
  13. ;;;示例:
  14. ;;;(setq k(pntonline p1 p2 p3))
  15. (defun pntonline (p1 p2 p3 / p c B C P)
  16.   (setq p p3)
  17.   (apply '+
  18.   (mapcar '(lambda (b)
  19.       (setq c (- (* (car p) (cadr b)) (* (cadr p) (car b)))
  20.      p b
  21.       )
  22.       c
  23.     )
  24.    (list p1 p2 p3)
  25.   )
  26.   )
  27. )
发表于 2009-12-21 08:48:00 | 显示全部楼层

inters,

直线两点为p1,p2,判断p3是否在此直线上,设置p4为(0,0)或者其它点,求

p1,p2,p3,p4的交点p5,如果p5=p3,说明p3在直线上,如果没有交点或者不等,说明p3不在直线上。

发表于 2009-12-22 08:19:00 | 显示全部楼层
直线两点为P1,P2,判断P3是否在此直线上,若△P1P2P3的面积大于零,则P3不在直线上;若面积等于零,则P3在直线上。
  1. (defun c:test()
  2.     (setq cm (getvar "cmdecho"))
  3.     (setvar "cmdecho" 0)
  4.     (while (setq p1 (getpoint "\np1:"))
  5.         (if (setq p2 (getpoint p1 "\np2:"))
  6.      (while (setq p3 (getpoint p2 "\np3:"))
  7.          (command "area" p1 p2 p3 "")
  8.          (setq mj (getvar "area"))
  9.                 (if (<= mj 1e-6)
  10.                     (princ "\n点P3在直线P1P2上")
  11.                     (princ "\n点P3不在直线P1P2上")
  12.                 )
  13.             )
  14.         )
  15.     )
  16.     (setvar "cmdecho" cm)
  17.     (princ)
  18. )
发表于 2009-12-22 08:43:00 | 显示全部楼层
学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 21:44 , Processed in 0.172444 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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