找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 805|回复: 3

[求助] [求助]:请教如何判断某一点是否在已知的面域内?

[复制链接]
发表于 2005-3-23 14:02:08 | 显示全部楼层 |阅读模式

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

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

×
如果已知的面域是规则的图形,例如圆形或矩形,则判断的方法不难!但如果已知的面域是不规则的图形,(如下图)这时候又怎样判断?有没有通用的方法?谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-3-23 15:24:57 | 显示全部楼层
我也很想知道,我还有可问题,就是在里面和外面 是否有精度问题,就是说允许有多少误差
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-23 15:39:34 | 显示全部楼层
我的方法很笨,以前要解决问题时写的。以后也没有再多想它。
贴出来献丑吧。也等高手们的方法。

;测试点是不是在多边型内
;参数:biao  多边形若干个节点构成的表((x1 y1 z1) (x2 y2 z2) ...)
;参数:dian  要测试的点表(x y z)
;反回nil为不在内,返回1 为在内
(defun cs (biao dian / A BIAOLEN JD JDBIAO JS M P1 P2 RE YS ponl ol)  ;测试点是不是在多边型内
         (setq m 0 jdbiao nil js 0 biaolen (length biao) ol 0)
             (while (< m biaolen)
                 (setq a (1+ m))
                 (if (=  a biaolen) (setq a 0))
                 (setq p1 (nth m biao) p2 (nth a biao))
                 (setq jd (inters p1 p2 dian (list 0 0)))
                 (setq dian2d (list (nth 0 dian) (nth 1 dian)))
                 (setq ponl  (equal  (+ (distance dian2d p1) (distance dian2d p2))
                             (distance (list (nth 0 p1 ) (nth 1 p1)) p2)
                             0.000000001))
                  (if (/= ponl nil) (setq ol 1))
                         (if (/= jd nil) (setq jdbiao (cons jd jdbiao) js (1+ js)))
                 (setq m (1+ m))
             )
         (setq ys (rem js 2))
         (if (= ys 0)
             (setq re nil)
             (setq re 1)
         )
         (if (/= ol 0) (setq re nil))
         re
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-23 18:35:55 | 显示全部楼层
我的方法是以选点为中心生成一个很小的圆形面域。将该圆形面域与原面域合并。如果得到的合并面域的面积大于原面域面积+1/2圆形面域面积,该点在面域外部,否则在内部。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 00:36 , Processed in 0.170317 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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