3

I need algorithm to get shift trace of given polygon by given 2d-vector.

Given valid polygon with no holes, but possibly concave. Operation performs on plane, so the result might be a polygon, possibly with holes. If it simplifies the task, outer polygon is enough.

enter image description here

It looks simple to describe, but I find it complex to realize, so I look for some ready solutions, preferably in c#.

4

1 回答 1

1

假设您有一个由点 A1、A2、...、An 给出的多边形 P。

现在您决定在 x 轴上移动 X,在 y 轴上移动 Y。

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

让我们称由点 B1、B2、...、Bn 给出的移动多边形 Q。

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

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

此时,您将填写您想要的形状。

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

通过这种方式,您还可以正确地输出第二个示例(中间孔的右下角应该是对角线,因为唇部滑动到位)。

于 2012-08-31T01:57:36.137 回答