yeah007 发表于 2005-6-17 15:03:00

急:如何判断闭合区域??

各位大侠,我遇到了这么一个问题.平面上有n条B样条曲线,它们互相可能有交点,现在要把<BR>它们构成的闭区域找出来,如何判定?需要用到图论吗?不知AUTOCad里面是如何判定区域闭合的.谢谢各位.<BR>

lntuzjc 发表于 2005-9-29 20:06:00

用面域?!

uusky 发表于 2005-9-30 19:44:00

<P>如何交互生成面域对象<BR>代码:</P>
<P>&nbsp;AcDbObjectId eId;<BR>&nbsp;AcDbEntity * ent;<BR>&nbsp;ads_name en;<BR>&nbsp;int rc = acdbEntLast(en);&nbsp; //获取数据库中任意一个实体<BR>&nbsp;&nbsp;&nbsp; if (rc != RTNORM) <BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("the database has nothing.\n", rc);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; if(!acedCommand(RTSTR,"-boundary",RTSTR,PAUSE,RTSTR,"",RTNONE))<BR>&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调用命令生成边界<BR>&nbsp;&nbsp;&nbsp; for(;;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //边界可能是嵌套型的,也就是有孤岛,所以进行循环<BR>&nbsp;{<BR>&nbsp;&nbsp;int rc = acdbEntNext(en,en);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获取生成的边界<BR>&nbsp;&nbsp;if (rc != RTNORM) <BR>&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //已经没有边界实体,退出循环<BR>&nbsp;&nbsp;acdbGetObjectId(eId, en);<BR>&nbsp;&nbsp;acdbOpenObject(ent, eId,AcDb::kForRead);<BR>&nbsp;&nbsp;ent-&gt;close();<BR>&nbsp;&nbsp;if(ent-&gt;isKindOf(AcDbPolyline::desc())) //生成的应是AcDbPolyline实体<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //..................<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //create region object&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这时就可以根据AcDbPolyline<BR>&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //的点的信息生成面域对象<BR></P>

uusky 发表于 2005-9-30 19:47:00

<P><A href="http://www.xdcad.net/forum/showthread.php?s=5e3054aa451b7f9a2af8244d101f1d4b&amp;threadid=467666" target="_blank" >http://www.xdcad.net/forum/showthread.php?s=5e3054aa451b7f9a2af8244d101f1d4b&amp;threadid=467666</A></P>
<P>这个程序中便用了面域来求面积!</P>
页: [1]
查看完整版本: 急:如何判断闭合区域??