2009-04-18 12 views
7

私は、高さマップ内の特定の高さに輪郭を表す線のリストを生成する関数または例を探しています。3D高さマップの輪郭を計算しますか?

例えば、

Lines[] = GetContours(Heights[512,512], HeightValue) 

ハイツは、浮動小数点値の512×512アレイである場合、HeightValue輪郭が描かれるべき高さです。高さには、その特定の高さの複数の線が含まれている場合があります(例:サドルまたは島チェーン)

これを生成するアルゴリズムを知りたい人はいますか?

答えて

2

あなたが実際にやっていることは、iso-lineを描くことです。
をご覧ください。
The link givenの回答の1つが非常に役に立ちました。

+0

論文へのリンクは死んでいます(404)。 – IAbstract

1

アルゴリズム:

a)のポリゴンは、あなたが興味を持っている高さ以下&上記の頂点を持っている検索

b)は平面上の行を取得するために平面を持つものポリゴンのエッジと交差します。

c)行を一緒にストリップに結合します。

1

NASAのSRTMデータから輪郭を生成するために作ったツールを見てください。アルゴリズムはC#コードで見つけることができます。