songzhi 发表于 2006-5-31 20:16:00

图形选择的问题,请高手指点!

<P>我需要这样的一个函数:</P>
<P>输入变量是一个点,输出是一个选择集。</P>
<P>实际图形中有两个图层:0和1,0代表一个封闭图形的外轮廓,1代表一个图形的内轮廓。</P>
<P>如果给定的点位于一个封闭图形的内部,则在选择集中返回这个封闭图形,如果有内轮廓连内轮廓一起返回;否则返回一个空的选择集。</P>

<P>目前我做到了,但是效率太低,尤其是图形比较复杂的时候。</P>
<P>我的思路是这样的:</P>
<P>首先获取整个图形的限制框,过给定点向屏幕的至左边做一条直线:获取直线与图形的所有交点;</P>
<P>从最近的一个交点开始,根据交点使用SelectAtPoint选择一个图元,在遍历图形获取首尾相连的图元,得到的封闭图形加入一个临时选择集;过给定点分别向至右上下作直线,如果给定点在封闭图形内,则每一次至少有一个交点,由此判断出给定点是否在封闭图形内的。</P>
<P>我相信这个不是太难,但是我就是编不出高效的代码来!请高手指点!</P>
<P>谢谢!</P>

xinghesnak 发表于 2006-6-1 11:42:00

发送boundary命令到命令行不知道行不行,楼主你试试。。。。。。

songzhi 发表于 2006-6-9 23:24:00

<P>发送boundary命令到命令行只能得到一个新的面域,我想得到的只是原来那些孤立的圆、圆弧和直线等,似乎不行啊!</P>
<P>麻烦高手在给出出主意吧!</P>

songzhi 发表于 2006-6-11 09:06:00

麻烦各位,我再顶一下
页: [1]
查看完整版本: 图形选择的问题,请高手指点!