我需要算法通过给定的2d-vector获得给定多边形的移位轨迹。
给定有效多边形,没有孔,但可能是凹面。 操作在平面上执行,因此结果可能是多边形,可能带有孔。 如果它简化了任务,外部多边形就足够了。
它描述起来很简单,但我觉得它很难实现,所以我寻找一些现成的解决方案,最好是在c#中。
答案 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)
此时你将填写你想要的形状。
有些平行四边形会重叠,但这没关系,因为你只是用相同的红色填充它们。
通过这样做,你也可以得到你的第二个例子,(中间的洞的右下角应该是对角的,因为唇部滑动到位)。