私は何日もインターネットを精査してきましたが、よくある質問と思われるものに対する良い答え(または少なくとも私にとって意味のあるもの)を見つけることができませんでした。任意のポリゴンをどのようにスケーリングしますか?特に、凹多角形。凹面(確実に)および自己交差(可能であれば)ポリゴンを処理できるアルゴリズムが必要です。単純な凸多角形を処理するために私が使用している明白で単純なアルゴリズムは、多角形の重心を計算し、その重心を原点に変換し、すべての頂点をスケーリングし、多角形を元の位置に戻すことです。
重心がポリゴンの外側にあることが多いため、このアプローチは多くの(またはすべての)凹ポリゴンでは機能しません。したがって、スケーリング操作でも変換が発生し、最終結果なしでポリゴンを「インプレース」でスケーリングできる必要があります。翻訳されています。
凹多角形をスケーリングする方法を知っている人はいますか?あるいは、スケーリング操作の参照フレームとして使用できる「視覚的中心」を見つける方法はありますか?
明確にするために、私は2D空間で作業しており、「ビジュアルセンター」を参照フレームとして使用してポリゴンをスケーリングしたいと思います。それで、質問をする別の方法は、凹面および/または自己交差するポリゴンの視覚的中心をどのように見つけるかということです。
ありがとう!