在下图中,您可以看到(1)三角形和圆形。给定该三角形中的专用点X,我想要剪掉从这一点看不到的所有东西。使用如(2)中的简单多边形差异算法去除圆圈没有问题。但是我可以使用什么样的算法来获得像(3)中的多边形?
Polygon总是很简单。
编辑:圆圈只是一个例子。每个简单的多边形都应该是可能的。
你可以通过观看游戏“突击队 - 背后敌人”的形象来描绘我的需求:
答案 0 :(得分:3)
这是基本的想法。
我假设一个更普遍的问题,但是将它调整到你的问题会容易得多:给定plan
包含所有形状,一个点和一组几何形状,我们想要从计划中删除从那一点看不到的区域。
我们想要做的是,对于每个形状,获得starting_polar
和ending_polar
点,即具有属于该形状的最小和最大极角的2个点。
现在我们将从plan
形状中移除,我们将移除由quadrilateral
,starting_polar
形成的ending_polar
以及之间的交叉点2条直线(x, starting_polar)
和(x, ending_polar)
以及plan
的边界。
在您的情况下,该计划只是triangle
。
答案 1 :(得分:0)
C平行于D,G平行于A,B平行于F,D是直径。