任意の形状のGraphicsPathを定義されたスペース(ほとんどの場合、長方形または円)に「合わせる」必要があります。
現在、Matrixオブジェクトを使用してGraphicsPathをスケーリングしていますが、スケーリングは正常に機能しますが、問題はスケール係数を取得することです。
私が思いつくことができる最良のテクニックは、GraphicsPathをRegionに変換し、RectangleまたはCircleをRegionに変換し、以下を実行することです。
rgnShape.Intersect(rgnCircle);
次に、次のことを確認します。
rgnShape.IsEmpty()
ただし、これは、形状が大きすぎて収まらないかどうかを示しているだけなので、形状を小さくして、再試行する必要があります(場合によっては何度も何度も)。
ポリゴンGraphicsPathが完全に円に収まるように、スケーリング係数を即座に計算する簡単な方法はありますか?結果は、円内に完全に収まる最大のポリゴンになるはずです。