
空間上に適当に散りばめられた点群を囲む、最小の球(中心と半径)を求めるプログラムを作っています。
用途はCADですので、数学的な厳密解ではなく、トレランスを与えたあいまいな最適解を求めたいのですが、
もっとも低コストな求め方、エレガントな解法、この分野に強い方、教えて頂けないでしょうか。
今現在は、こんな感じで誤魔化しています。
(1) 最大距離になる2点を直径として、その内側に他の点群がすべてあったらそれを採用。
(2) (1)の外側に点群があったら、(1)の中心点から一番遠い点を使い、
3点による球で、再び内側に点群がすべてあるか確認。
(3) (2)の球の外側に点群があったら、再び中心から最大距離の1点と、
(2)の3点のうちの、上記の点との最近点とすりかえて、球を定義、再び全点確認。
(4) (3)を繰り返す。
とりあえず稼動確認したところ、それなりに良さそうな球が求まったのですが、いまいち納得できません。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
3度目です。
以下のSiteをご覧下さい。非常にシンプルで効果的なアルゴリムです。私の案は撤回します。1)BoundingBoxを作る(=x,y,z最大最小値)
2)BoundingBoxに内接する球を求め、これを初期球とする。
3)全点なめ、
3a)iー点がこの球に入っていたらOK。
3b)iー点がこの球に入っていなかったら、このi-点を通り、反対側が元の球を通るように、新球を定める。(容易)
だけで完成です。
参考URL:http://www.3dspot.com/rtnews/rtnews7b.html
No.5
- 回答日時:
seianさんの指摘される通り、「Boxの一番長い辺の1/2を半径とする球でいい」です。
失礼しました。書いた後、コンビニで買い物している最中に「内接」という表現が数学的に正確でないことに気が付いたのですが、「まあ、分かってくれるだろう」と妥協してしまいました。
返事おそくなって申し訳ございません。
ametsuchiさん、seianさん、早速の回答ありがとうございます。
おかげさまで、誤魔化していた部分が、ようやく確かな答えとして結果がでるようになりました。
CADを経験されている方のアドバイスがあると、非常に助かります。
まだ幾つか誤魔化してCADをカスタマイズした部分があるので、また、よろしくお願いします。
ありがとうございました。
No.4
- 回答日時:
ametsuchiさん > 2)BoundingBoxに内接する球を求め、これを初期球とする。
細かいようですがBoundingBoxは一般には直方体になるわけで、
初期球としてはこのBoxに内接する球ではなく、このBoxの中心を中心とし、
このBoxの一番長い辺の1/2を半径とする球でいいようにも思えるのですが
如何なものでしょう。
No.2
- 回答日時:
先程の文章、「絞る」で切れてました。
要は、計算時間を食わない範囲で、球の半径を「小さくする」ことも考えるべきではないかということです。私も職業としてCADには20年程関わっていますが、生憎BoundingBoxしか使っていません。CGの世界では計算時間のかかるRayTracingで、No.1のような「BoundingSphere」が提案され、高速化に寄与しています。
下記のアルゴリズムを追うのがメンドイので、下記アルゴリズムとは別に自分なりの方針を掲げると、
1)BoundingBox作成
2)BoundingBoxに外接する、BoundingSphere作成(これが上限)
3)BoundingBoxに内接する、Sphere作成(これが下限)
4)半径だけでなく、中心も動かして、反復計算させる。(上限・下限で挟み撃ち)
No.1
- 回答日時:
大変失礼ですが、あまりエレガントな解法とは思えません。
なぜなら、1)「最大距離になる2点」を探すというのは、1/2*n^2回に比例する比較が必要。
2)最小の球とは限らないのではないか。常に大きくしているだけ。「絞る」
下記にBoundingSphereに関するアルゴリズムがあります。中は見てません。
参考URL:http://www.acm.org/tog/resources/RTNews/html/rtn …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 数学ベクトルに関しての質問 3 2022/05/25 23:21
- 数学 半径6の円Kを底面とする半球がある。半球の底面に平行な平面が半球と交わっており、交わりの円Lの半径は 6 2022/06/24 06:34
- 物理学 導体球殻 電場・電位 2 2023/01/28 11:51
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- 物理学 半径aの球導体中心から距離d(a<d) の点に点電荷Qがあるとき、それらの電位係数を求めよ、という問 1 2022/07/14 11:19
- 中学校 OA=OB=OC=AB=AC=1、 ∠BOC=90°となる四面体OABCの 辺OA上に点DをOD:D 4 2022/10/11 10:07
- 物理学 物理の問題 3 2022/11/12 17:22
- 物理学 中心を同じに点に持つ半径aの導体球(導体1)、内半径b、外半径Cの導体球殻(導体2)があるとして、導 1 2023/08/12 23:36
- 物理学 半径aの球導体中心から距離d(a<d) の点に点電荷Qがあるとき、それらの電位係数を求めよ という問 1 2022/07/14 15:32
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Rの計算式を教えてください。
-
半径137キロの球体の容積の半分...
-
製図上の”R”について
-
AutoCADで4辺の長さが違う4角...
-
円錐台の展開図
-
複素数平面について質問です。 ...
-
曲率半径ってなに????
-
角丸四角で角の丸みや線の太さ...
-
紙コップの展開図の作り方
-
1辺が1の立方体があります。こ...
-
球の1周は4π
-
「cosθ=6分の5」のθの値を「度...
-
φ11.5mmの電線の最小曲げ半径は...
-
円の性質
-
放物線と円
-
移動式クレーン教科書で、体積...
-
DV男との、うまい別れ方を教え...
-
半径1の円周の任意の2点の平均...
-
3配位の限界半径比の求め方
-
ベッセル関数って、
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報