[求助]如何判断一个点是否位于一个封闭的多段线多边形内?
如何判断一个点是否位于一个封闭的多段线多边形内?谢谢!!
建立多义线数组坐标,通过数组坐标判断该点坐标是否在闭合多义线面域内。
谢谢,关键就是如何通过数组坐标判断该点坐标是否在闭合多义线面域内??
我倒是有个思路:就是面域有多个线段组成(应该是面域的端点数-1条),然后分别进行判断该点是否垂直于其中的线段,
如果有两个或两个以上的垂直,则该点在面域内
不过我以为:上述方法缺点就是运算量较大,还有就是只适合凸多边形
请高人指正!
还有,谢谢兰州人!
以点为圆心画很小的圆并做成面域,原面域与该面域作差集再判断
谢谢!!
能否给点关于如何“以点为圆心画很小的圆并做成面域”以及如何做差集判断的资料或者代码什么的?
不胜感激!!!
是否可以通过从点发射线,计算与多段线的交点个数来判断,好像图形学里有这个算法 ???????.....
PrivateFunction PointInRegion(ByVal TlsRegion, ByVal Point)As Boolean
'判断点是否在面域内
Dim pCopy As AcadRegion, pRegion As AcadRegion
Dim pobjs(0) As AcadEntity
Set pCopy = TlsRegion.Copy
Set pobjs(0) = pWorkSpace.AddCircle(Point, 0.0001)
Set pRegion = pWorkSpace.AddRegion(pobjs)(0)
pRegion.Boolean acIntersection, pCopy
If pRegion.Area > 0 Then PointInRegion = True
pRegion.Delete
pobjs(0).Delete
End Function
在周培德的几何算法中有,与楼上sailor说的相似,
当出现交点是1,3,7...代表点在闭合多义线面域内。
涉及到相交多少判断是在线的哪一边,
页:
[1]