3D極座標の散布データから近似曲面で立体を作成し、立体の原点を含む任意のカット面とカット面の輪郭を取得するアルゴリズムを教えてください。
例えば極座標中にリンゴの種の部分を原点に、リンゴの細胞核の座標がプロットされていたら
そのデータからリンゴの皮にあたる閉じた近似曲面を計算する
次に任意の角度から種(原点)を通るように任意の角度でリンゴをカットする
リンゴのカットの断面の輪郭である閉じた近似曲線を取得する
という感じです
アルゴリズムだけなので、言語は問いません。
既存の言語で実現できるライブラリがあるのでしたらそれでもかまいません。
(私が探した限り、極座標でのカットは見つけられませんでしたが)
用途は工学的な用途で、ゲーム等で見栄え良く表現をすることを目的とは
していません。
> (私が探した限り、極座標でのカットは見つけられませんでしたが)
それは「他の座標表現での話であれば見つかった」ということですか?
であれば,それを使うのではダメなのですか?
:最初から最後まで全てを極座標の上での表現だけで実現したい,という話ですか?
#例えば,演算途中で三角関数とか持ち出すとそれはその時点でユークリッド座標を扱っていることと同義になると思うので,厄介そうな話.
ご質問ありがとうございます。
Open3D,matplotlib,unityなどで、点群から3D の輪郭を作成し、メッシュ(ポリゴン?)データ
に変換されているのを見かけました。(断面の輪郭の抽出までは見つけられませんでした)
「理想は」極座標表現のままの方です。
元データをデカルト座標変換する方法でも既存のライブラリで容易に実現できるならいいのですが
同じくらい実現に工数がかかりその上誤差が大きくなるのではないかなと。
(知識不足でどっちに工数を注いで良いかの判断もできておらずすみません)
「カット面」が平面ならば,とりあえずその平面に近いデータだけを集めて平面に投影してしまい,あとは2次元の問題として扱えば良さそうな気もしますが,どうなんでしょう?
(2次元の点群に対してどの点が「輪郭」上の点で,どの点は違うのか? を求めることが問題となる…のかな?)
あーでも,精度の面で,単純にデータ点を平面に投影するようなことをしたらもうダメ…かも?
(平面を(法線方向に沿って)何パターンかオフセットしてそういうことをした結果から,なんかこう,補間…とかで精度を簡易的にかせげないかな?)
アドバイスありがとうございます。
たしかに精度の面で難しいですね。
私のたとえがよくなかったです。
リンゴとリンゴの細胞の数のように大量のデータがあるわけではないので、
近いデータだけ選ぶとかなり違うカット面になってしまいます。
点群から直ではなく3Dの近似曲面を算出した上で、輪郭を取得しないと
難しいのではないかなぁと思います。
いや,なんかてきとーすぎる素人意見を垂れ流していまいすみません.
しかし,想定されているデータの密度とか分布の偏り次第で話が変わってくる場合,そこらへんの実際の 状況/雰囲気 がわかる何か(なんだろう? 絵とか?)を質問内で示していかないと,有識者からの真に有用な回答を得るのが難しいではないでしょうか.
---
> ライブラリ
点群データを扱うライブラリとしては "Point Cloud Library" というのを聞いたことはありますが…(使ったことないので,何ができるのものなのか?すらも私は知らないですが)
アドバイスありがとうございます。
データ数もはっきりしておらず、画像も用意できず済みません。
はっきりはしていないなりに、質問に追加してみたいと思います。
画像は、手書きで用意してみようと思います。
ライブラリありがとうございます。私がまだ見たことがない
ライブラリでしたので、見てみることにします。
あなたの回答
tips
プレビュー