Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 填充多边形边上的间隙_Math_Language Agnostic_Draw_Polygon - Fatal编程技术网

Math 填充多边形边上的间隙

Math 填充多边形边上的间隙,math,language-agnostic,draw,polygon,Math,Language Agnostic,Draw,Polygon,我正在使用pygame绘制多边形,但当线条太粗时,多边形的边上会出现间隙。我希望填补这些空白。我找到的解决方案是绘制一个填充多边形,所有间隙中有4个点,如下图所示。但我不知道如何找到多边形的4个点,这是我的问题。如果你能找到一个更好的解决方案,那就太好了 注意:多边形并不总是规则的,它只是由许多点组成的。如果您的解决方案不是python,也没关系。如果您的多边形没有锐角(方向变化超过90°), 在每个角点处,将两条线延长(线宽/2)*tan(角度)。角度是方向变化量,而不是线段之间的内角 如果

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


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

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


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

你可以延长线,这样它们就可以填补空白。虽然
不好,这可能足以形象化这个想法。

您想要一个斜接接头。圆形连接更容易,看起来也不错。请参见中的图片。我可能会同时包括这两个,但我会从miterI开始,注意到@Frank Puffer提出了相同的想法。我必须处理所有类型的多边形,这样就不会像你说的那样工作