efan2000
发表于 2004-1-5 13:12:00
这种方式其实是调用ACAD的方法来判断,它还生成一个实体,因而运行的时间是比较长的。
其它的都要自己根据算法来编写一段代码了,算法在计算机图形学里有介绍。
zzg4028061
发表于 2004-1-6 20:28:00
创建一个临时图层,然后使用点坐标在图层上创建一个点对象
使用闭合线域在临时图层上选择,如果选择集的Count>0则在范围内,否则则不在
呵呵
cqszgs
发表于 2004-1-9 09:56:00
下面的程序是用面域相交的方法判断是否点在封闭的PLine内部。
思路:
1.根据点的坐标生成一个半径很小的圆。
2.将圆和PLine转换为面域。
3.判断生成的两个面域是否相交。
程序如下:
Public Function PtInPline(pts As Variant, pline As AcadEntity) As Boolean
Const radius = 0.0001 '减少此值可以增加精度
Dim cir As AcadCircle
Dim regions As Variant
Dim reg1 As AcadRegion
Dim reg2 As AcadRegion
'生成圆
Set cir = ThisDrawing.ModelSpace.AddCircle(pts, radius)
'转换为面域
Dim objToRegion(0 To 1) As Object
Set objToRegion(0) = cir
Set objToRegion(1) = pline
regions = ThisDrawing.ModelSpace.AddRegion(objToRegion)
Set reg1 = regions(0)
Set reg2 = regions(1)
reg1.Boolean acIntersection, reg2
'判断是否相交
PtInPline = False
'If reg1.Area > 0 Then
If reg1.Area > 0.9 * 3.14 * radius * radius Then
PtInPline = True
End If
'删除临时生成物体
cir.Delete
reg1.Delete
End Function
cqszgs
发表于 2004-1-9 11:46:00
使用API判断点是否在多边形中
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=15203
cqszgs
发表于 2004-1-9 11:54:00
[转帖]判断点是否在多边形中的分析
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=15179
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=15179
algorithm
发表于 2005-6-23 10:59:00
现在给你一个点。怎么判断?
algorithm
发表于 2005-6-23 11:06:00
http://xlong.diy.myrice.com/howdoudo.bmp
现在给你一个点。怎么判断? <BR>
LONGXIN
发表于 2005-6-23 22:08:00
<A href="http://www.xdcad.net/forum/showthread.php?s=&threadid=410414" target="_blank" >http://www.xdcad.net/forum/showthread.php?s=&threadid=410414</A>
misters
发表于 2005-6-25 15:29:00
大虾们都在这灌水,去看看我的问题呀,添加多线段的问题
zyhandw
发表于 2009-10-14 08:37:00
我也遇到同样问题,请大侠指点!