明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3021|回复: 5

[求助]怎样判断一点在多边形内

[复制链接]
发表于 2005-5-16 17:33:00 | 显示全部楼层 |阅读模式
请大家帮个忙,怎样判断一点在多边形内,我要做一个开发,急用,谢谢!
发表于 2005-5-16 23:24:00 | 显示全部楼层
用该多边形生成面域,再用下面的函数判断
  1. function PointInRegion(ByVal TlsRegion, ByVal Point) As Boolean
  2. '判断点是否在面域内
  3.        Dim pCopy As AcadRegion, pRegion As AcadRegion
  4.        Dim pobjs(0) As AcadEntity
  5.        Set pCopy = TlsRegion.Copy
  6.        Set pobjs(0) = pWorkSpace.AddCircle(Point, 0.0001)
  7.        Set pRegion = pWorkSpace.AddRegion(pobjs)(0)
  8.        pRegion.Boolean acIntersection, pCopy
  9.        If pRegion.Area > 0 Then PointInRegion = True
  10.        pRegion.Delete
  11.        pobjs(0).Delete
  12.       
  13. End Function
 楼主| 发表于 2005-5-21 12:05:00 | 显示全部楼层
版主您好,


谢谢您给我的帮助,我还有一点不明白,因为我是一个初学者,我不懂怎样生成面蜮。


我还有另外一个问题想问您:


怎样选择一个层上的所有对象,并且把它的属性全部读出来。


谢谢
发表于 2005-5-21 13:17:00 | 显示全部楼层
生成面域可以用thisdrawing.modelspace.addregion方法,选中某一层中所有对象可先关闭其它层然后再创建选择集然后选择所有对象即可,遍历选择集可得每一个对象的属性
 楼主| 发表于 2005-5-23 19:44:00 | 显示全部楼层
谢谢这位大哥
 楼主| 发表于 2005-5-23 19:55:00 | 显示全部楼层
能问雪山飞狐 版主 的电话吗? 我是中国石油大学的学生,我有一些问题想问您,急!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 14:41 , Processed in 0.141609 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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