用更大的多边形替换多边形中的小角度

时间:2017-07-09 20:28:04

标签: algorithm computational-geometry

我有一个包含每个顶点位置的2D多边形区域的顶点数据。我的任务是计算整个多边形的角度,并用较大的角度(比如小于120度)替换顶点。例如,如果三个点(ABC)形成一个90度的角度,我想用另一个与另外两个点成120度的中间点(B)替换。

我想知道我是否可以写一个算法来找到顶点B的新位置,给定A和C的xy坐标和ABC之间的120度角(我计算了当前的角度,所以你不需要写如何做到这一点)。请注意,我不是在寻找一个独特的点(没有唯一的点),只是寻找角度计算来替换点。如果你知道其他方法来做这种替换,也欢迎他们。

1 个答案:

答案 0 :(得分:1)

你有一个三角形ABC,B是你想要用较大角度替换的“小”角度。拨打新位置B'。这是建筑。设D是AC的中点,即D =(A + B)/ 2。您想将B'放在BD段上。 沿BD的任何位置将在B'处产生更大的角度,当B'= D时,角度为180°。

在[0,1]中选择参数t。然后放置B'=(1-t)B + t D.

<小时/> ABC

现在,这里有一个缺陷(除了 spug 指出的那个)。将B移动到B'可能会导致AB'C击中其他 多边形的一部分,因此它不再简单。您必须决定是否要计算保证不会导致自相交的t。