頂点への近さに基づいて、三角形の RGL メッシュの面に色を付けたいと思います。
問題は、多くの場合、頂点が実際の頂点の位置自体から非常に離れた面に関連付けられているように見えることです。これは、1 つの頂点の周りの面に色を付けたいときに問題を引き起こします。顔は、実際の重心位置から非常に離れています。
私が今していることはこれです:
メッシュ内のすべての面の重心を計算します。
FAR パッケージを使用して、目的の点に最も近い n 個の重心を計算します。それらのインデックスを保持します。
収集したインデックスに基づいて、それらの面に特定の色を付けます。残りの面は白く着色されます。
colors=rep('white',num_faces) colors[colored_faces]='red' mesh$material=list(color=colors)
- 次に、メッシュをプロットします。
plot3d(mesh)
- 問題は、私は今非常に奇妙な色付けになっています.特定の座標/頂点に近い面に色を付ける確立された方法はありますか?
これが現在のメッシュの外観です。赤は「色付き」の面、青は近くに色付きの面を配置したいポイントです。
更新:これを見て、私の質問は次のように変更されました:
特定のポイントに最も近い面を見つけるにはどうすればよいですか? 顔の重心は誤解を招くことがあり、特定の頂点までの実際の距離を表していないため、まだ明確ではありません。
更新 2 :
ここにサンプル コードとファイルを追加しました:ファイルとコード
基本的に、コードは、最近傍アルゴリズムを使用して、同じ 3D メッシュの特定の頂点に最も近い面を見つけてから、カラー ベクターでそれらの面に色を付けます (色を 4 回色付けすることを忘れないでください)。
ただし、このアルゴリズムを実行すると、形状の片側のみに色が付けられます: 次のように: Odd
カラーリングをもう少し対称的にするにはどうすればよいですか?
更新 3 : この問題は解決されました! 面、頂点、およびエッジの色付けを可能にする rgl の最新バージョンについては、Rforge のリリースされていないバージョンの rgl を参照してください。
更新 4 : これは、最も近い頂点に色を付けた新しい画像です (新しい rgl パッケージが驚異的に機能することを示すため):