【问题标题】:Shift trace of polygon by given vector通过给定向量移动多边形的轨迹
【发布时间】:2012-08-31 01:22:30
【问题描述】:

我需要算法来通过给定的二维向量获取给定多边形的移位轨迹。

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

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

【问题讨论】:

  • 你所描述的看起来像原始多边​​形,移位多边形和由原始多边形的一个边形成的所有平行四边形的并集,同边移位和连接两侧端点的两条移位.要执行联合操作,您可以找到第三方几何库或查看 System.Drawing.Region 类 - msdn.microsoft.com/en-us/library/system.drawing.region.aspx
  • 谢谢,如果找不到更高效的解决方案,我会使用它

标签: algorithm geometry polygon


【解决方案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)

此时,您将填写所需的形状。

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

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

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    相关资源
    最近更新 更多