tur*_*1ng 6 algorithm math clipping polygon computational-geometry
在下图中,您可以看到(1)三角形和圆形.给定该三角形中的专用点X,我想要剪掉从这一点看不到的所有东西.使用如(2)中的简单多边形差异算法去除圆圈没有问题.但是我可以使用什么样的算法来获得(3)中的多边形?
Polygon总是很简单.
编辑:圆圈只是一个例子.应该可以使用每个简单的多边形
你可以通过观看游戏"突击队 - 敌后线"的形象来描绘我的需求:
这是基本思想。
我假设一个更一般的问题,但是将其适应您的问题会更容易:给定一个plan
包含所有形状、一个点和一组几何形状的模型,我们希望从平面图中删除该区域从那时起不可见。
我们想要做的是,对于每个形状,得到它的点starting_polar
和ending_polar
点,即属于该形状的具有最小和最大极角的两个点。
现在我们将从plan
形状中删除,并删除quadrilateral
由点形成的:starting_polar
、ending_polar
以及两条直线(x, starting_polar)
和(x, ending_polar)
的边界之间的交点plan
。
就您而言,计划将只是triangle
.