在AutoCAD或arcgis desktop中,如何判断多段线或面的方向是逆时针方向还是顺时针方向
多段线在绘制的过程是有顺序的,绘制完了它没有方向,就是个曲线
好比你画线的时候,从A画到B和从B画到A,它都是同一条线段,不存在朝左或朝右的问题
如果只有3个点,可以根据坐标判断方向
如果点很多,算法就会异常复杂了
而且考虑到如果画了个8字,它算什么方向,这就根本是无解了
如果是凸四边形,可以取任意3个点求方向
如果是凹四边形,单纯从其中3个点判断就不对了,得先判断哪个点是落在外接三角形内部的,把它排除掉
如果是N多个点,要求得最外围的其中3个点,这个算法本身就够复杂的
其实就是跟我用4个点举例一样
图形最外围的点决定了方向,而落在内部的点不影响方向
所以关键问题就是如何判断哪些点是"无效"的
如果你的图形都是这样水平的或垂直的,就好办了
如果是任意角度的,那判断起来太复杂了
其实就是局部和整体的区别
你的图2,在局部,它确实是逆时针的,但是整体上,它是顺时针的
而所谓局部,其实就是落在外接凸多边形内部的点
可以循环将多边形的各个点每间隔一个连线,如果发现连线后,被排除的点落在多边形的外面,则这个点保留,落在图形内部,则这个点删掉
最终得到一个完全的凸多边形,再判断方向