これは簡単そうに見える質問ですが、うまく機能させるのに苦労しています。
頂点のリストで定義された (非凸) ポリゴンがあります。すべてのポイントが一定量外側に移動する別のポリゴンを作成したいと思います。ポイントをスケーリングしてから元の原点に戻そうとしましたが、必要な効果がありませんでした。
各ポイントを元のポイントの「外側」にしたいと思います。しかし、点のリストだけを考えると、「外側」を計算するのは非常に難しいようです。これを行う簡単な方法はありますか?
これは簡単そうに見える質問ですが、うまく機能させるのに苦労しています。
頂点のリストで定義された (非凸) ポリゴンがあります。すべてのポイントが一定量外側に移動する別のポリゴンを作成したいと思います。ポイントをスケーリングしてから元の原点に戻そうとしましたが、必要な効果がありませんでした。
各ポイントを元のポイントの「外側」にしたいと思います。しかし、点のリストだけを考えると、「外側」を計算するのは非常に難しいようです。これを行う簡単な方法はありますか?
内部と外部をグローバル プロパティとして定義するのは難しいというのは正しいと思います。しかし、各コンポーネント ライン セグメントを個別に使用すると、左と右の明確な定義があります(少なくとも、パスを横断するコンテキスト内では)。
したがって、セグメントを反時計回りにトラバースし、現在のセグメントの右側にオフセットしたセグメントを追加すると、これはあなたが望むものに近いかもしれません。または、時計回りにトラバースして、セグメントを左にオフセットして追加します。凹部に変形形状が生じる場合があります。
ポリゴンのオフセット、つまり、ポリゴンの外側にあり、ポリゴンまでの距離が特定の数値であるすべてのポイントのセットが必要なようです。オフセットはポリゴンではありませんが、
おそらく、ポリゴンの重心に対してすべての頂点をスケーリングできます。