[求助]如何根据顺OR逆时针来确定点的顺序
大家好,有个问题向大家请教:比如有一个多线段组成的封闭图形,各个节点依次衔接起来。如A,B,C,D,E'''''',我的问题是如果根据顺OR逆时针来确定点的顺序。
如附件(cad2004)
**** Hidden Message ***** 在晓东看到的Arx的代码,最近太忙了,有时间改写下
http://www.xdcad.net/forum/showthread.php?s=&threadid=34540&perpage=15&display=&pagenumber=1
谢谢~
试下:
复制代码 测试代码
public void test()
{
var db = HostApplicationServices.WorkingDatabase;
var doc = Application.DocumentManager.GetDocument(db);
var ed = doc.Editor;
var resEnt = ed.GetEntity("\n请选择优化多段线:");
using (Transaction tr = db.TransactionManager.StartTransaction())
{
Polyline pl = resEnt.ObjectId.GetObject(OpenMode.ForWrite) as Polyline;
var pnts =GetAll(0, pl.NumberOfVertices - 1, i => pl.GetPoint2dAt(i));
ed.WriteMessage("\n面积:{0}\n顺时针:{1}", pnts.GetArea(), pnts.IsClockWise());
tr.Commit();
}
}
public IEnumerable GetAll(int start, int end, Func func)
{
for (int i = start; i <= end; i++)
{
yield return func(i);
}
}
效果:
命令: ctest
请选择优化多段线:
面积:304398.872847913
顺时针:False
我来顶一下
页:
[1]