【问题标题】:Fill gaps in edge of a polygon填充多边形边缘的间隙
【发布时间】:2016-03-20 19:19:49
【问题描述】:

我正在使用 pygame 绘制多边形,但是当线条太粗时,多边形的边缘会出现间隙。我希望填补这些空白。我找到的解决方案是在所有间隙中绘制一个填充了 4 个点的多边形,如下图所示。但我不知道如何找到多边形的 4 个点,这是我的问题。另外,如果您能找到更好的解决方案,那就太好了。

注意:多边形并不总是规则的,它只是由许多点组成。如果你的解决方案不在 python 中也没关系。

【问题讨论】:

  • 你想要一个斜接。圆形连接更容易并且看起来也不错。见stackoverflow.com/a/10943245/107090中的图片。
  • 我可能会同时包含两者,但我将从斜接开始

标签: math language-agnostic draw polygon


【解决方案1】:

如果您的多边形没有锐角(方向变化超过 90°), 在每个角点,将两条线延长(lineWidth/2)*tan(angle)。角度是方向变化的量,而不是线段之间的内角。

如果你确实有锐角,它会变得更复杂。线段不能再绘制为矩形,您只能扩展多边形的“外”边缘。公式是一样的。

【讨论】:

  • 我必须使用各种多边形,这样就不会像你说的那样工作
【解决方案2】:

您可以延长线条以填补空白。虽然picture 不好,把想法形象化一下可能就够了。

【讨论】:

  • 我注意到@Frank Puffer 提出了同样的想法。
猜你喜欢
  • 1970-01-01
  • 2019-12-05
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多