• 締切済み

続 最小包含円

ametsuchiの回答

  • ametsuchi
  • ベストアンサー率31% (81/257)
回答No.3

seljuさん、使用目的を勘違いしてました。おハズカシい。大変失礼しました。トレランスとは、CAD用語でいう、ホントの”Tolerance”、たとえば0.1mmとかそういうオーダの世界の話なんですね..。兎に角トンでもない大ボケお詫びいたします。点数など、絶対付けないで下さい。前に頂いたのも返上したい気分です。 目的はCADで、Interactiveに球を定義する、というようなもんなんでしょうか?返事はいりませんが..。 だとすると、点数nも大変大きな数を想像していたのですが、数点かも知れないんですね?2D CADの世界では、3点から円、円弧を決めるなんてよくありますが、3D CADで球を定義する場合、中心と半径を与えるのが多いように思ってました。実は自動車など、自由曲面・自由曲線を主体に扱ってきたので、球面(の一部)は殆ど扱ってこなかったのです。 で、「点列から最小包含球」と聞いて、高速化のための処理と早とちりした次第。兎に角お役に立てず申し訳なかったです。

selju
質問者

お礼

私の方こそ説明下手で申し訳ございません。 最終目的も先に書いとけば良かったですね。 つい、数学のカテゴリーということで、そっちよりに書いた方が良い回答を得られるかなと思ったもので。 >目的はCADで、Interactiveに球を定義する、というようなもんなんでしょうか? まさにそのとおりです。3DCADのカスタマイズなのですが、 それこそ中心と半径でしか球を定義できない機能を、もっと使いやすくするのが目的です。 具体的には、ある形状を円柱材料から切り出すとき、 必要最小径の円柱材料がわかれば、コスト削減につながったりします。(この場合の"コスト"はまさに"$"です。) 実際対象なる形状も、自由曲面を含む部品もあれば、単純な積み木形状、 リバースエンジニアリングの数万点の点群からなる部品をも扱いたいと考えています。 教えて頂いた高速化の処理は、全部品干渉チェックとか、設計意図を織り込む、よりファジーな自動設計プログラムの開発に役立てようと思っています。 こんな内容を、理解して聞いてくれる方がいることが、 私にとってはとても嬉しく思います。 いつも、孤軍奮闘なもので…。

関連するQ&A

  • 最小包含円

    空間上に適当に散りばめられた点群を囲む、最小の球(中心と半径)を求めるプログラムを作っています。 用途はCADですので、数学的な厳密解ではなく、トレランスを与えたあいまいな最適解を求めたいのですが、 もっとも低コストな求め方、エレガントな解法、この分野に強い方、教えて頂けないでしょうか。 今現在は、こんな感じで誤魔化しています。 (1) 最大距離になる2点を直径として、その内側に他の点群がすべてあったらそれを採用。 (2) (1)の外側に点群があったら、(1)の中心点から一番遠い点を使い、 3点による球で、再び内側に点群がすべてあるか確認。 (3) (2)の球の外側に点群があったら、再び中心から最大距離の1点と、 (2)の3点のうちの、上記の点との最近点とすりかえて、球を定義、再び全点確認。 (4) (3)を繰り返す。 とりあえず稼動確認したところ、それなりに良さそうな球が求まったのですが、いまいち納得できません。 よろしくお願いします。

  • 最小包含円(補足)

    質問ではないのですが・・・・。 昨日seljuさんの質問に対して書いたことがちょっと正確でないことに 気が付いたのですが、今朝見たらもう既に締め切られた後でしたので・・・。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=88669 seljuさんの質問(に対するametsuchiさんの回答)に対して、 「初期球としてはこのBoxに内接する球ではなく、このBoxの中心を中心とし、 このBoxの一番長い辺の1/2を半径とする球でいいようにも思えるのですが・・・」 と書いたのですが、場合によってこの方法では最小にならないことに気が付きました。 (例えば、最長辺の両端の面を構成した2点が最長辺のうちの1つの辺の両端点で 他の点はすべてBoxの中心付近にある場合など) 結局、 「Boxの最長辺の両端の面を構成した(つまり両端面上にある)2点を直径とする球を 初期球とする」 に変更すればよいように思えます。この場合たまたま一方もしくは両端面上に複数の 点がのっている場合は、各面ともそのうちの任意の1点を選べばいいでしょう。 私はCADなどやっとことがない方なので、どうも3次元のことを考えるのは あまり自信が持てませんので、どなたかコメントを頂ければ幸いです。

  • 答えだけでもいいので、お願いします。

    答えだけでもいいので、お願いします。 「二重球殻の電場と電位」 外側にある半径aの球殻に総量Qの電荷が一様に分布しています。 内側に半径bの同心球殻(a>b)があり、総量-Qの電荷が一様に分布しています。 1.球殻の中心Oから距離rの点での電場Eを求めてください。 rがふたつの球殻の外側(r>a)の場合も、外側と内側の球殻の間(b<r<a)の場合も、二つの球殻の内側(r<b)の場合も求めてく ださい。 2.電場を積分して、球殻の中心Oから距離rの点での電位φを求めてください。 rがふたつの球殻の外側(r>a)の場合も、外側と内側の球殻の間(b<r<a)の場合も、二つの球殻の内側(r<b)の場合も求めて ください。 無限遠点の中心の電位を0とします。 多くてすみません。 一部でもいいのでお願いします。

  • 同心球導体球の接地について

    同心球導体球の接地について、過去に質問されていなかったのでおねがいします。 同心球導体球において、外側の球に電荷Qを与え、内側の球を接地した場合、電界はどのようになるのでしょうか? (内側の球の半径a、外側の球の内径b、外径cです。) 回答は、 a<r<b、c<rの場合についてお願いします。

  • 東方明珠塔(上海のテレビ塔)の料金が良くわかりません

    上海旅行に行くのですが、「東方明珠塔(テレビ塔)」のちゃんとした料金がわかりません(高さによって50元or100元とありますが) テレビ塔の写真を見ると、上球(とても小さい)、中球、下球(中球と下球の大きさは同じに見えます) ・疑問点 1・下球(無料)中球(50元)上球(100元)なのか? 2・下球(50元)中球(100元)上球(登れない??) のどちらなのでしょうか? 1ならば、「中球の高さで十分と思うので50元でやめておく?(中球と上球のメートル差そんなにないように見えるから、上球行くのに+50元払うのはやめよう)」 2ならば、「下球は低い、頑張って100元だして中球まで行こう」と同行者と相談中です。 どなたか料金がわかる方教えて下さい。あと、答えられる方でいいのですが、「やはり一番高い上球まで(もし100元だとしても)登るほうが良い」のでしょうか?それとも「(もし100元だとしたら)そこまで払わなくても、中球とメートル差ないから50元でやめておく人のが多いよ」など・・・ご意見頂ければ有難いです

  • 最小二乗法による球の中心・半径のC言語による導出

    工学部の学生です。 最小二乗法による球の中心・半径のC言語による導出についてのご質問です。 ある物体の表面座標群を取得し、点iの位置(x座標、y座標、z座標)を zahyou.x[i] zahyou.y[i] zahyou.z[i] (iは0から300程度) として保存している状況です。 この座標群にC言語で最小二乗法を適用し、中心座標と球半径を導出する場合、 どのようにすればよろしいでしょうか? 座標群が歪な物体であった場合、むりやりにでも導出することは可能でしょうか? 形だけでも点iの存在する空間の中心・半径っぽいものを求められると助かります。 (たとえば、最大のx座標と最小のx座標÷2≦導出半径に収まるなど、ありえない結果は除外できるでしょうか…) 実に他力本願な質問事項で心苦しいのですが、切羽詰っております。 恥を忍んで、どうか皆様方のご助力お願いします。 参考 http://questionbox.jp.msn.com/qa2652396.html

  • 最小二乗法?

    i 個の測定点 (x[i],y[i]) を,最小二乗法などを用いて下記の式にフィッティングさせようと考えています。Visual Basic で作成した測定プログラムの中で使用したいのですが,具体的にどのようなアルゴリズムでフィッティングを行えばいいのか分かりません。 Y = A * sin(X - C)^2 + B 実測する x[i] の範囲は狭く,例えば -15°~ +15°まで 0.2°毎の計 151 プロット,といった感じです。そして定数 A,B,C の内,最も高い精度で求めたい定数は C です。測定の段階で x の範囲を狭めているのは,正確な C (通常 1°未満)を求めるためです。 この測定は x[i] にはほとんど誤差が含まれませんが y[i] には誤差があります。y[i] の含まれている誤差は試料によってまちまちなので,一概には言えません。目視ではほとんど誤差が分からない綺麗なカーブの場合,逆に目視で辛うじて下に凸の曲線が分かる程度の場合,どちらもあり得ます。 考え方だけでも構いませんので,どうかご教授下さい。よろしくお願いいたします。

  • m個の数字をn個のグループに分けるとき、

    m個の数字をn個のグループに分けるとき、 各グループの和s(i) ,(1<=i<=n) が、指定した比 r(0):r(1): ・・・ :r(n-1):r(n) ( = s(0):s(1): ・・・ :s(n-1):s(n) ) に一番近くなるようなグループ分けを導けるアルゴリズムはありますか。 例えば、{1, 3, 4, 6}を和の比が1:2に一番近くなるように2つのグループに分けると、 {1, 4}, {3, 6} となります。(もし違ってたら指摘してください) アルゴリズムでなくても、こうしたら良いんじゃないか、という考えがありましたら 教えてください。 総当たりで調べる場合はどのようにすれば、効率良く調べられるかという点もお願いします。 よろしくお願いします。

  • 電磁気学が難しく授業についていけていません(~_~

    以下の問題が分かりません… 1.真空中に半径aの導体球があり、+Qに帯電されている。この導体球を囲うように、半径b(b>a)の薄い球殻が置かれている。球殻には均一に合計-Qの電荷を帯電させた。導体球と球殻の中心は一致している。以下の問いに答えよ。 1)球殻の中心を原点とするとき、げんてんからの位置ベクトルrの点での電界を求めよ。 2)空間に蓄えられる静電エネルギーUをもとめよ。 2.断面の半径がaで長さが無限大の円柱上の物体の内部を一様に電流Iが流れている。またこの円柱状物体と中心軸が一致した長さが無限大で半径がb(b>a)の薄い円菅に一様に電流Iが円柱状物体の電流と同じ向きに流れている。このときの磁界の大きさをアンペールの法則(積分形)を適用して求めよ。 長くなってしまい、すみませんm(_ _)m 1)はなんとかできたとはおもいますが、球殻と導体球が実際どのような電界が出ているのかがイメージできません(~_~;)

  • ビリヤードのナインボールについて

    ビリヤードのナインボールについて質問させていただきます。 ナインボールでは一番最小の玉以外に最初に手玉が当たった場合ファウルとなりますが、仮に手玉、1、2という順番で並んでいて1に手玉を当てたあとその1が2に当たって2だけが落ちたとしたらこれはどうなるのですか?これがファウルでないのなら、最小の玉が弾かれた後に9に当たるように 狙って一球で勝負がつくこともあり得ますよね? 詳しい方教えてください!