nonsmall 发表于 2007-7-26 17:55:00

【求助高人】怎么判断点和多线的关系?(已解决)

本帖最后由 作者 于 2007-7-27 14:41:47 编辑 <br /><br /> <p>怎么判断一个点是一个</p><p>任意封闭多线(带圆弧)</p><p>的内部点????</p><p>A:offset判断面积</p><p>B:先判断直线的,再判断圆弧凸凹度</p><br/>

Andyhon 发表于 2007-7-26 18:19:00

<p>check here:</p><p><a href="http://www.4d-technologies.com/techcenter/index.htm">http://www.4d-technologies.com/techcenter/index.htm</a><br/>Geometry--&gt;GE_PtInPoly</p>

nonsmall 发表于 2007-7-26 18:34:00

拜谢了先,我在读代码

nonsmall 发表于 2007-7-27 10:19:00

<p>不行啊,这段代码我试用了一下,只能判断直线的情况,在包含圆弧的多线情况下就没用了。</p><p>还有高人再给点建议啊?</p>

Andyhon 发表于 2007-7-27 10:35:00

本帖最后由 作者 于 2007-7-27 10:46:24 编辑 <br /><br /> <p>有一个跳板就是借助 Offset 选项</p><p>再比较面积的大小......<br/></p><p></p><p>也應該可以借用 vlax-curve-getClosestPointTo </p><p>加上<br/>vlax-curve-getFirstDeriv or vlax-curve-getSecondDeriv</p><p>未實證過,請自行用心求證</p>

caoyin 发表于 2007-7-27 11:02:00

本帖最后由 作者 于 2007-7-27 11:04:28 编辑 <br /><br /> <p>楼主所说的多线应该是*POLYLINE,而不是MLINE吧</p><p></p><p></p><p></p><p>我的思路:</p><p>图上白线是一条任意封闭曲线,点p1在曲线内,p2在曲线外</p><p>点划线是经过点的无线延长线------根据图示可以得出结论</p><p>&nbsp;&nbsp;&nbsp; 经过P1的点划线在该点的两侧与曲线的交点数量为奇数</p><p>&nbsp;&nbsp;&nbsp; 而经过P2的点划线在该点的两侧与曲线的交点数量为零或偶数</p><p></p><p>根据以上写出程序就简单了,缺点要作一条XLINE辅助线</p>

nonsmall 发表于 2007-7-27 11:20:00

<p>5楼的朋友,可惜我的程序不能用VL函数<img alt="" src="http://www.mjtd.com/bbs/Skins/default/topicface/face14.gif"/></p><p>6楼的朋友,我的确是对pline判断;</p><p>你的这种算法我知道,昨天想了,这种算法缺点在于当点的延长线处于某边所在顶点位置上时,</p><p>就会出现判断错误的情况。</p>

nonsmall 发表于 2007-7-27 11:30:00

<p>5楼的朋友,如果offset后产生多个区域,有的放大了,有的变小了,怎么判断?</p><p>&nbsp;</p>

caoyin 发表于 2007-7-27 14:11:00

<p>回7楼,求出pl线的顶点,如果交点为顶点,则特别处理</p><p>------------------------------------------------------</p><p>五楼的意思就是通过 点 偏移对象,如果新产生的对象面积小于源对象则在曲线内。</p><p>当然8楼的图示,需要加个判断,新对象的数量大于1,即可推出点在曲线内</p>

nonsmall 发表于 2007-7-27 14:34:00

<p>把offset的距离设置成0.001,这样就差不多了,如果出现变多的情况,</p><p>计算所有新生成的面积总和与原来的进行比较即可。这个方法应该行。</p><p>另外我根据2楼的提供,加入圆弧凸凹度判断,也能解决。</p><p>感谢楼上各位高人,另外我还有问题帖子,大家有兴趣可以看看</p><p><a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=61835">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=61835</a></p>
页: [1]
查看完整版本: 【求助高人】怎么判断点和多线的关系?(已解决)