
空間上に適当に散りばめられた点群を囲む、最小の球(中心と半径)を求めるプログラムを作っています。
用途は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
- 物理学 大学物理 1 2023/01/28 15:15
- 物理学 半径aの球導体中心から距離d(a<d) の点に点電荷Qがあるとき、それらの電位係数を求めよ という問 1 2022/07/14 15:32
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つの円において、弦が等しい...
-
Rの計算式を教えてください。
-
楕円の半径の求め方
-
螺旋の周長の求め方
-
下の図において、直線ABは円O、...
-
円弧から直径を知りたいのですが…
-
製図上の”R”について
-
楕円の先端半径について教えて...
-
球の1周は4π
-
ベッセル関数って、
-
「カッシーニの軌道計算」は東...
-
丸パイプ同士の接合断面を展開...
-
作図
-
球の表面積から半径を求める方...
-
二点間を通り半径Rの中心点を求...
-
円の方程式でX2乗+Y2乗=...
-
角丸四角で角の丸みや線の太さ...
-
円の周りを円が回転するとき何...
-
AutoCADで4辺の長さが違う4角...
-
機械製図で(R)の意味と使い方
おすすめ情報