• ベストアンサー

ある形式で与えられる空間中の2直線間の距離・中点を求めたいのですが

ametsuchiの回答

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

hogehogeninjaさんの答えも的確だし、finetoothcombさんもチャンと理解しているようだから、横から口出すのも何ですが...。 1)hogehogeninjaさんの言われる「n^ = x^ × y^ (外積)(2)」の右辺は単位ベクトルとは限らないので、正規化しなくてはなりません。「n^」はそのつもりで書かれたと思うのですが、finetoothcombさん気を付けてください。私は別の方法をよく使いますが、この方法でも計算量は基本的に同じです。 2)hogehogeninjaさんが、「特別な配慮が必要なのは2直線の平行度云々」はとても大事なことです。幾何計算ライブラリやCADシステムを構築する時、一番厄介なのがこの辺です。ただし、「x^ と y^ の内積をとって平行度を調べる」までもなく、(2)で外積計算をして正規化しなくてはならないので、この際自然に検査が必要になります。だから、このやり方なら、「x^ と y^ の内積をとって平行度を調べ」るのは2度手間です。 3)問題自体、「方位角」、「仰角」になっているのでやむをえないのですが、これには三角関数計算が必要です。三角関数はコストの高い計算で、なるべくなら使わない方がよいです。(この場合は仕方ないです!!!)

finetoothcomb
質問者

お礼

ありがとうございます. 有益なコメントに感謝感激です. いろいろな方に方向性の正しさを追認してもらえる、ということにもなり、このジャンルに疎い私としては、ありがたいです. 1-1)外積は正規化が必要なのですね. 気をつけます. 1-2)「別の方法を良く使います(計算量は基本的に同じ)」というのを、お教えいただけたら、とてもありがたいのですが.(どうしても知りたいという訳ではなく、できれば知っておきたいというぐらいなので、もしお時間がありましたらという感じですが.) 2-1)No.3で hogehogeninjaさんが訂正として書いてくださった、n^=n_/|n_|の分母部分ですね.この演算を実行する前段階に、|n_|=0(あるいは、ある小さい値εとして |n_|<ε)かどうかを検査し、もし、それがTRUEなら、平行と見て、処理は中断(というか例外処理)する…という理解をしたのですが、もし間違っていましたら教えてください. 2-2)「幾何計算ライブラリ(やCADシステム)を構築」した経験・知識がなく(やり方が解らない)、Cでべたべたっとプログラムを組むつもりです. 「幾何計算ライブラリ」というのを構築する利点は、速度向上でなく、再利用性の向上というイメージ的理解なのですが、もし間違っていたら教えてくださると幸いです. 使うCの処理系は、DOS上で動くフリーソフトであるところの、Borland C+ 5.5.1 (bcc32.exe)というものを使っているので、それを使う予定です. これで(仮に余裕があれば経験を積むために)幾何計算ライブラリを構築することはできるのかな.普通どのようにするのでしょうか. 3)そうでした.重要なことを忘れていました.ありがとうございます.コストが高い=計算が遅い、ってことですよね. プログラムを作った後で、結構大量の計算をする予定です.高速化のためのなんか良い作戦がないでしょうか. 値は0≦θ<2π, 0<φ<π/2をとり得るのですが. 一般論としては、高頻度の値については結果の表(テーブル)を用意する作戦がある、と聞いたことがあります.しかし、あらゆる値をとりうる場合には、あまり効果がなさそうです.普通に三角関数入りのプログラムを組むしか仕方ないとは思っています.なにかワザが有りましたら教えていただけましたら幸いです.

関連するQ&A

  • 平面決定とねじれの定義について

      今空間図形をやっていますが、平面決定とねじれの位置について疑問が生じました。   平面の決定条件の一つに、「ねじれの位置でない2直線が与えられたとき」がありますが、一方ねじれの位置にある2直線の定義は、「同一平面上にない2直線」になっています。これでは循環証明になっているのではないかと思います。   数学に詳しい方、難しい数学を使ってもいいので、教えてください。

  • 数学の質問! 直線と中点

    〔問題〕 xyz空間においてP(1,0,3)、Q(3,2,1)がある。 この時、直線PQを軸にして、X(4,0,5)を180度回転したとき、移動後の点の座標を求めよ。 2直線の中点が一致すればいいのですが、どうも合いません。 どこがおかしいんでしょうか? >>P(1,0,3),Q(3,2,1),X(4,0,5) 求める点の座標をY(a,b,c) (1+3)/2=(4+a)/2 (0+2)/2=(0+b)/2 (3+1)/2=(5+c)/2 よって、 a=0 b=2 c=-1 Y(0,2,-1) で→PQ・→XY=0 となるはずなんですが、ならないんです。。。 教えてください!!

  • 空間座標 球面上の点と空間にある点の距離について

    空間座標において 「『球面上の点と空間にある点P』との(最短)距離」は球面中心と点Pを結んだ距離と球面の半径と差で求めると思うのですが、感覚的にはわかる気がしますし、平面座標だと分かりますが、空間座標になると本当にそうなのかと思ってしまいます。式で証明することができるのでしょうか。 また、「『球面上の点と直線の点』との距離」や「『球面上の点と平面の点』との距離」も同じように球面の半径から直線の点もしくは平面の点に垂線を下ろして考えるのでしょうか。

  • 原点で交わる2直線A、Bがあり、直線AはXZ平面上にあってX軸と15度

    原点で交わる2直線A、Bがあり、直線AはXZ平面上にあってX軸と15度をなしており、直線BはXZ平面をZ軸を軸に(反時計方向に)60度回転させた平面上にあってXY平面と20度をなしているとき、2直線によって定義される平面に、Z軸上の任意の点から引かれた垂線とZ軸のなす角度を求めたいのですが・・・。なお。実際には文章中の15度と20度の2つの数値は無理数に置き換えるので、d1、d2という2つの変数を用いた式の形になっていれば充分です。なにやら法線ベクトルという考え方をするらしいのですが、垂線がXY平面に投影された角度については必要ありません。Z軸と垂線とによって定義される平面におけるZ軸と垂線のなす角度がわからないのですが・・・。

  • 空間図形のもんだいです。

    座標空間内に4点P(3,1,4,),A(1,2,3),B(1,1,2),C(2,1,1)がある。直線PAとxy平面の交点をA‘、直線PBとxy平面の交点をB‘、直線とxy平面の交点をC‘とする。 (1)三角形ABCの面積を求めよ。 (2)三角形A‘B‘C‘の面積を求めよ。  この問題をといてくれませんか、よろしくお願いします。

  • 空間内で平面がただ1つに決定されるもの?:中学1年

    以下、よろしくお願いします。 <問題> 次の中から、空間内で平面がただ1つに決定されるものを全て選び、記号で答えなさい。 <選択肢> ア:1つの直線を含む平面。 イ:平行な2直線を含む平面。 ウ:平行な3直線を含む平面。 エ:交わる2直線と他の1直線を含む平面。 オ:1直線上にない3点を含む平面。 カ:交わる2直線を含む平面。 キ:ねじれの位置にある2直線を含む平面。 ク:1直線上にない4点を含む平面。 ケ:1つの直線と、その直線状にない1点を含む平面。 <解答> イ、オ、カ、ケ <疑問点> 解答は概ね理解できますが、なぜ、「ウ、エ、ク」は駄目なのでしょうか?

  • 直線

    xy平面上の4点O(0,0)、A(2,0)、B(-1,0)、P(x,y)(y>0)に対して∠OBP=45゜かつPで直線BPに立てた垂線は∠OPAを二等分するという条件が成り立っているときxとyを求めよ 直線BPがy=x+1ということ以外わかりません 解き方を教えてください

  • 空間(長いです)

    「空間において、定点O,Aがあり、 FはOAの中点を中心とする半径1の球面である。 2点X1,X2をF上に取る時、4点O,A,X1,X2を頂点とする四面体の 体積の最大値を求めよ」 という問題で、(全部書くと長くなるので質問したい所だけ書くと) 『直径OAをx軸上に置き、△OX1Aをxy平面上に取る。 原点をO'として、O(1,0,0),A(-1,0,0)とする。 点X2からxy平面に降ろした垂線の足をHとし、O'Hとx軸の正方向とのなす角をβ、O'X2とz軸の正方向とのなす角をθとすると X2(sinθcosβ,sinθsinβ,cosθ)となる』 とあるのですが、 どうしてX2座標のx座標とy座標はsinθが掛かってるんですか? また、Hの座標は(cosβ,sinβ,0)でOKですか? 回答よろしくお願いします。

  • 空間ベクトルに関する質問

    平面ですと、平行でない2つのベクトルがあったとき、そのベクトル同士のなす角が一意に決まりますが、空間ですと、 (同じく平行でないとき)でもベクトル同士が交わる場合もあれば、ねじれの位置になる場合もあるので、そのなす角とは、どう考えたらよいのでしょう? ベクトルの定義のところで、ベクトルは平行移動してもよいとなっています。 空間ベクトルでも、ねじれの位置にある2つのベクトルを、平行移動して始点を原点に移動して、そのなす角を考えても良いのでしょうか? よろしくお願いします。

  • 高校数学Aのねじれの位置に関する証明について

    「空間内に4点A,B,C,Dがあって、2直線AB,CDがねじれの位置にあれば、2直線AD,BCもねじれの位置にあることを証明せよ」と言う問題で、 模範解答では、「2直線AB,CDがねじれの位置にあるとき、2直線AD,BCもねじれの位置にないと仮定すると・・・」と、 背理法の流れで証明します。 しかしこれを、背理法を使わずに 「2直線AB,CDがねじれの位置にあれば、4点A,B,C,Dが同一平面上にない。とういうことは2直線AD,BCもねじれの位置にあると言える」 という証明法は 何か問題があるから模範解答は背理法を使ってるんだと思うんですが、 その「問題」がなんなのか分からないので教えてください。