按一个点求填充边界应该怎么做
给个思路也行 前段时间看过一个方法:点集(数组)查找相邻的点集、线段;可否参考作为你这个应用场景需要自行判断。原理大概:1,遍历全图点集,进行排序,以鼠标选点为基点,排序所有的点与基点连线线段,以角度和距离小到大排序,0~360°角度为主,距离为次关键字;
2,根据排序,选择最近的点,逆时针(也可以顺时针)进行点集的连线包围选择点。找出最小凸包。
3,根据最小凸包中的顶点与你点选附近的线重合的则选择该线段。如果不重合的排除,看看能否得到你要的填充边界。
(仅供参考) 雪山飞狐_lzh 发表于 2004-5-22 18:02
不知道这样可行性怎么样
这个思路应该可以LISP实现 用SendCommand调用-Boundary。 在一个块里做填充可调用不了SendCommand,
老大,可以给个思路么 也可以实现,比较复杂,将块中的实体使用CopyObjects全部拷贝到模型空间,然后使用SendCommand生成边界,再将边界拷贝到块中,进行填充,删除这些临时对象。 的确比较复杂
谢谢老大及斑竹 在求边界的时候做一次块的试插入,调用-Boundary求边界,再将边界复制到块中,这样要简单一点吧,不过要判断插入的块的范围内没有其他实体还是比较复杂 各位高手,我是初学者,你们发表的思路很难看懂,希望大家高抬贵手帮助我写个程序:),解决剖面线的问题。我的毕业设计只剩下这个问题不会,谢谢各位!!! 纯几何的方法:
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">采用的是其中一种基于角度搜索的方法,其大致思路如下:一条弧段至少由两个点组成,而邻接的两弧段间的夹角是指起始弧段到终止弧段之间顺时针方向的夹角;从弧段一端<SPAN lang=EN-US>(s)出发,并作为起始弧(终止弧),把与(s)端邻接其它弧段作为终止弧(起始弧),找出与该弧段夹角最小的终止弧(起始弧),再把找到的弧段作为新的起始弧段(终止弧),再从新弧段的另一端出发重复上述过程继续搜索,直到回到出发弧段的另一端(e)为止,则所有搜索出的弧段就构成了一个多边形。这样,从一条弧段可以跟踪出两个多边形。遍历图中各N条弧段便可搜出2N个多边形(包含重复的和错误的多边形)。如图1中从弧段se的s端出发分别作为起始弧和终止弧进行搜索得到多边形B(s,b,c,d,e)和A(s,a,e)。</SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>去除重复多边形和错误多边形后,可得到一个某条边所在多边形</SPAN>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>程序编起来,还是比较复杂的,但原理是这样的,仅作参考</SPAN> 这个纯几何的方法也太复杂了吧,不过能实现最好,
PS:原理可能有点漏洞 原理是没问题的,我用vb也实现过,不过真是麻烦
页:
[1]
2