2016-03-20 6 views
1

私はポリゴンを描画するのにpygameを使用していますが、線が太すぎるとポリゴンのエッジに隙間があります。私はこれらの隙間を埋めるようにしたい。私が見つけた解決策は、下の画像でわかるように、すべてのギャップに4点の塗りつぶしポリゴンを描くことでした。しかし、私はポリゴンの4点を見つける方法を知らないし、それは私の質問です。また、優れたソリューションを見つけることができれば素晴らしいでしょう。ポリゴンの端に隙間を埋める

What I need

注:ポリゴンはそれだけで多くのポイントから作られている、常に定期的ではありません。また、あなたの解決策がPythonでない場合は、それは大丈夫です。

+1

マイタージョイントが必要です。ラウンド結合ははるかに簡単で、見栄えも良いです。 http://stackoverflow.com/a/10943245/107090の画像を参照してください。 – lhf

+0

私は両方を含むかもしれませんが、私はマイターで始めるでしょう –

答えて

1

ポリゴンに鋭角がない場合(方向が90°以上変化する場合)、各コーナーポイントで の両方の線を(lineWidth/2)*tan(angle)で延長します。角度は、セグメント間の内角ではなく、方向の変化量です。

鋭角の場合は、より複雑になります。線分を矩形で描画することはできなくなり、ポリゴンの「外側」エッジのみを延長する必要があります。その式は同じです。

+0

すべての種類のポリゴンで作業しなければならないので、あなたが言った通りには動作しません。 –

0

ギャップを埋めるように行を延長することができます。 picture は良くありませんが、アイデアを視覚化するだけで十分かもしれません。

+0

@Frank Pufferが同じ考えを示唆しました。 –

関連する問題