明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3003|回复: 9

如何判断一个点是否在任意闭合多边形的内部?

[复制链接]
发表于 2002-11-26 19:47:00 | 显示全部楼层 |阅读模式
该闭合多边形的某一边由一个圆弧组成,现想知道圆弧的弦的中点是否在该闭合多边形内.有现成的算法吗?先谢谢了!
发表于 2002-11-27 10:33:00 | 显示全部楼层

这样做...

(Defun C:BB ()
       (SetQ e (EntLast))
       (SetQ p (GetPoint"\nP: "))
       (Command "bpoly" p "")
       (If (SetQ ee (EntNext e))
           (Progn (Alert "OK") (EntDel ee))
           (Alert "No")
       )
)
;这是模拟程序,P是您的已知点,函数返回值就是(EntNext e)
发表于 2002-11-28 11:06:00 | 显示全部楼层

果然是高招,又学会了一个方法。

发表于 2003-11-29 16:56:00 | 显示全部楼层
;;From a Tony Tanzillo suggestion, see
;; John Uhden's @cv_inside function thread.
;; minimal, dirty, etc...
;;
(defun ALE_ISINSIDE (IMPPNT ENTNAM / NEWENT ENTARE)
  (command "_.AREA" "_O" ENTNAM)
  (setq ENTARE (getvar "AREA"))
  (command
    "_.OFFSET"
    (/ ENTARE 10000)
    ENTNAM
    IMPPNT
    ""
    "_.AREA"
    "_O"
    (setq NEWENT (entlast))
  )
  (entdel NEWENT)
  (> ENTARE (getvar "AREA"))
)

;;command: pline 0.0 100,0 100,50 0,50 c

;;command: (ALE_IsInside '(-0.00000000001 -0.00000000001) (entlast))
;;nil

;;command: (ALE_IsInside '(0.00000000001 0.00000000001) (entlast))
;;T
发表于 2003-11-29 11:39:00 | 显示全部楼层
这个方法我认为不妥~
如果图面上有很多图形,按照你的程序,在一个多边形内部的点,就一定在任何多边形的内部~
发表于 2003-11-29 14:26:00 | 显示全部楼层
请看旧贴:

如何判断点在某个封闭的区域内部?http://bbs.mjtd.com/forum.php?mod=viewthread&tid=13100&star=1&skin=0
发表于 2003-11-29 16:41:00 | 显示全部楼层
谢谢版主提示~
有没有lisp程序呢?
ObjectARX/VC++ 编程技术我一点都不懂亚
发表于 2003-11-29 17:23:00 | 显示全部楼层
这个程序很有意思~
谢谢了~
发表于 2012-6-8 15:48:13 | 显示全部楼层
实在是好方法,学习了。
发表于 2012-6-8 15:55:52 | 显示全部楼层
不过如果点在线上这个方法好像不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 03:57 , Processed in 0.201389 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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