ハイトマップ内の特定の高さで輪郭を表す線のリストを作成する関数または例を探しています。
例えば、
Lines[] = GetContours(Heights[512,512], HeightValue)
Heights は浮動小数点値の 512x512 配列で、HeightValue は輪郭を描画する高さです。高さには、その特定の高さの複数の行が含まれる場合があります (サドルやアイランド チェーンなど)。
これを生成するアルゴリズムをどこで入手できるか知っている人はいますか?
あなたが実際にやろうとしているのは、アイソラインを描くことです。少し前にそれについての私の質問
を参照してください。回答の1つで指定されたリンクは非常に役に立ちました。
標準のアルゴリズムは、マーチング スクエアです。
NASAのSRTMデータから等高線を生成するために私が作成したツールであるSrtm2Osmを見てください。アルゴリズムはC#コードにあります。
アルゴリズム:
a) 関心のある高さの上下に頂点を持つポリゴンを見つけます。
b) これらのポリゴンのエッジを平面と交差させて、平面上に線を取得します。
c) 線をストリップに結合します。