通过给定矢量移动多边形的轨迹

时间:2012-08-31 01:22:30

标签: algorithm geometry polygon

我需要算法通过给定的2d-vector获得给定多边形的移位轨迹。

给定有效多边形,没有孔,但可能是凹面。 操作在平面上执行,因此结果可能是多边形,可能带有孔。 如果它简化了任务,外部多边形就足够了。

enter image description here

它描述起来很简单,但我觉得它很难实现,所以我寻找一些现成的解决方案,最好是在c#中。

1 个答案:

答案 0 :(得分:1)

假设您有一个由点A1,A2,...,An。

给出的多边形P.

现在你决定将它在x轴上移动X,在y轴上移动Y.

您可以分别对每个点执行此操作以获取多边形的结束位置。

让我们通过点B1,B2,...,Bn调用移位的多边形Q givng。

然后您需要做的就是绘制以下平行四边形:

(A1 A2 B2 B1),(A2 A3 B3 B2),(A3 A4 B4 B3),...,(An-1 An Bn Bn-1),(An A1 B1 Bn)

此时你将填写你想要的形状。

有些平行四边形会重叠,但这没关系,因为你只是用相同的红色填充它们。

通过这样做,你也可以得到你的第二个例子,(中间的洞的右下角应该是对角的,因为唇部滑动到位)。