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=&amp;threadid=410414" target="_blank" >http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=410414</A>

misters 发表于 2005-6-25 15:29:00

大虾们都在这灌水,去看看我的问题呀,添加多线段的问题

zyhandw 发表于 2009-10-14 08:37:00

我也遇到同样问题,请大侠指点!
页: 1 [2] 3
查看完整版本: [讨论]如何判断坐标点是否在闭合多段线内