私は本でこの問題を見つけ、必死に解決しようとしています。質問自体は次のとおりです。最大の高さで屋上 (平らでない屋根) を作成します。壁は 90 度の角度または平行です。
私のアプローチ:
私はすべてのエッジポイントを持っています。したがって、スキャンラインアプローチを使用できます。すべてのポイントを x 軸、次に y 軸で並べ替えます。次に、ポイントのリスト全体を調べて、壁に対して 45° の線を引きます。すでに描いた現在の線と交差する線があるかどうかを確認します。一致しない場合は、次のポイントに移動して、壁に対して 45° の別の線を引きます。最後の 2 本の線が交差する可能性が高いので、交点に新しい点を作成します。
私が抱えている問題は、特殊なケースがたくさんあるということです。私が考えていなかったより簡単な方法はありますか?この種の問題により適した他のアルゴリズムはありますか? この種の問題に対するあなたの考えは何ですか?
例:
これは、屋根がどのように見えるかを想像するものです。