• ベストアンサー

距離で片方の点のZ1を求めるとき

二点X0,Y0,Z0とX1,Y1,Z1がある時、 距離を求めるのは下記の式でと教えて頂いたのですが、 距離 = √((X0-X1)^2+(Y0-Y1)^2+(Z0-Z1)^2) これを使って距離やZ1以外がわかっているときに 片方の点のZ1を求めたいのですが、 どのようにしたらいいでしょうか? 距離 = √((X0^2-2X0X1+X1^2)+(Y0^2-2Y0Y1+Y1^2)+(Z0^2-2Z0Z1+Z1^2) 距離 = (X0+√(-2X0X1)+X1)+(Y0+√(-2Y0Y1)+Y1)+(Z0+√(-2Z0Z1)+Z1) とやってみたのですが これからどうやってZ1を動かそうか???? [特にこの部分が√(-2Z0Z1)] となってしまいました この時点で間違ってるのでしょうか? 文字式で出したいのですがよろしくお願いいたします m(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • puni2
  • ベストアンサー率57% (1002/1731)
回答No.4

前の(No.3の)やり方ですが,ちょっと不十分なところがあります。 距離(以下dと書きます),(x0,y0,z0), (x1,y1,z1)のうちz1以外の値が与えられている,というのが条件ですが,この条件が信用できる(言い換えれば,この距離dの値は,実際に2点間の距離を求めた結果である)という保証が最初からあるのであれば,No.3のやりかたで求まります。 しかし,たとえば d=1 (x0,y0,z0)=(0,0,0) (x1,y1,z1)=(1,1,z1) なんていう条件だと,(x1,y1,z1)は原点を中心として半径1の球面上に無ければならないわけですから,どうがんばっても条件を満たす(1,1,z1)は存在しません。 そういう“意地悪”なデータも出てくる可能性があることを考慮に入れると,次のようにやり方を修正する必要があります。 まず,「両辺(≧0)のルートをとります。」の上の行まではそのままで良いです。 問題はそこから先で,おかしなデータの場合は両辺が非負という保証はないので,きちんと方程式を解く必要があります。 d^2 - {(x0-x1)^2+(y0-y1)^2} = (z0-z1)^2 これをz1に関する2次方程式と見て, z1^2 - 2z0z1 + {z0^2 - d^2 + (x0-x1)^2 + (y0-y1)^2} = 0 あとは解の公式を使ってください。 ちなみにこれの判別式を出してみると, D=4z0^2 - 4{z0^2 - d^2 + (x0-x1)^2 + (y0-y1)^2} =4{d^2 - (x0-x1)^2 - (y0-y1)^2} で,{ }の中は結局(z0-z1)^2に等しいですね。 つまり,「距離の2乗よりも(x0-x1)^2 + (y0-y1)^2のほうが大きい場合は,(z0-z1)^2<0にならなければならないので,これを満たすような実数z1は存在しない」ということです。

gotyan
質問者

お礼

有り難うございます。 そうですね 出来ないこともあるんですね.... じっくり読んで理解して使わせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • puni2
  • ベストアンサー率57% (1002/1731)
回答No.3

最後から2番目の式を,一番最後の式に変形するところが違います。 一般的な形で書くと, √(a+b+c)=√a+√b+√c にはなりません。 (ためしにa=b=c=1を両辺に代入してみると,√3=3になってしまいますね) >距離やZ1以外がわかっているときに ということは,z1以外の座標値や距離は全部分かっているときにz1を求める式を作りたい,ということですね。 (言い換えれば,一番最初の式をz1について解く) (読みにくいので,変数は小文字を使わせてください) まず,最初の式 距離 = √{(x0-x1)^2+(y0-y1)^2+(z0-z1)^2} の両辺を2乗します。 距離^2 = (x0-x1)^2+(y0-y1)^2+(z0-z1)^2 z0やz1を含まない項を左辺に。 距離^2 - {(x0-x1)^2+(y0-y1)^2} = (z0-z1)^2 両辺(≧0)のルートをとります。 √[距離^2 - {(x0-x1)^2+(y0-y1)^2}] = | z0-z1 |  ← √(a^2)=|a|を用いました。 つまり,(ここから両辺を入れ替えて書きますが) z0≧z1のときは z0-z1=√なんとか ∴ z1=z0-√なんとか z0<z1のときは z1-z0=√なんとか ∴ z1=√なんとか-z0 まとめて書くと, z1 = | z0-√[距離^2 - {(x0-x1)^2+(y0-y1)^2}] | あってるかなあ。

全文を見る
すると、全ての回答が全文表示されます。
  • debut
  • ベストアンサー率56% (913/1604)
回答No.2

>距離 = (X0+√(-2X0X1)+X1)+(Y0+√(-2Y0Y1)+Y1)+(Z0+√(-2Z0Z1)+Z1) はできません。 たとえば、√(a^2+b)とあるとき、a+√bにはなりません。注意してください。 変形の仕方は、(距離をDとします) 最初の式 距離 = √((X0-X1)^2+(Y0-Y1)^2+(Z0-Z1)^2) の両辺を2乗 して、D^2=(X0-X1)^2+(Y0-Y1)^2+(Z0-Z1)^2 とし、(X0-X1)^2+(Y0-Y1)^2 を移項しますと、  (Z0-Z1)^2=D^2-(X0-X1)^2-(Y0-Y1)^2 となり、Z0-Z1について解くと  Z0-Z1=±√{D^2-(X0-X1)^2-(Y0-Y1)^2} となり、さらにZ1について  解く(Z0を移項)と出したい式が得られるかと思います。

gotyan
質問者

お礼

有り難うございます。 やはり違ってましたか...orz 助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • theisman
  • ベストアンサー率47% (56/119)
回答No.1

距離をLとおけば、両辺を2乗して、 (X0-X1)^2+(Y0-Y1)^2+(Z0-Z1)^2 = L^2 (Z0-Z1)^2 = L^2 - (X0-X1)^2 - (Y0-Y1)^2 と、変形してしまえばいいのでは?

gotyan
質問者

お礼

有り難うございます。 もう片方に変化させるという手があるんですね(^^;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2点間の距離公式

    空間内の三斜晶系の格子(軸長a≠b≠c, 軸角α≠β≠γ)内にある2点ABの座標をA(x1, y1, z1)、B(x2, y2, z2)とすると、 2点間の距離は以下の式で求めることができます。 AB^2 = (x1-x2)^2・a^2 + (y1-y2)^2・b^2 + (z1-z2)^2・c^2 + 2(x1-x2)(y1-y2)ab(cosγ) + 2(y1-y2)(z1-z2)bc(cosα) + 2(z1-z2)(x1-x2)ca(cosβ) 例えば、次のような格子の大きさと任意の二点A,Bの座標を設定すると、 格子: a = 10, b = 12, c = 15, alpha = 60°, beta= 70°, gamma= 80° 2点の座標: A(3/10, 4/10, 5/10), B(5/10, 3/10, 4/10) AB間の距離は、上記の公式から“AB = 2.570”と求まります。 このとき、どのようにして上記の二点間の距離を求める公式が導かれるのでしょうか?? 自分で導こうと式を展開していくと、途中で非常に複雑になってしまい、 上のようなシンプルな式の形に到底辿り着けそうな気がしません。 どなたか、上記の公式を導き出せる方、出来るだけ分かりやすく教えて頂けるとありがたいです。 どうぞよろしくお願いします。

  • 三次元の点と点の距離

    原点からx1,y1,z1の位置に点Aが,原点からx2,y2,z2の位置に点Bがあります. ここからx1,y1,z1を中心としてみたときに,x2,y2,z2までのx軸,y軸,z軸の距離が知りたいのですが,どのように求めれば良いでしょうか・

  • 2点間の距離で困っています

    ご教授お願い致します 点a(x1,y1,z1)と点b(x2,y2,z2)があります この2点を結ぶ直線の長さはab=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2)) で求まります ここからが質問です、例えばabの長さが100.5と出たとき点aは固定してabのベクトル上で100.0の点cのx,y,zの座標を求めるにはどの様な公式を使えばよろしいでしょうか?

  • 平面と点の距離

    3点の座標A1(x1,y1,z1)、A2(x2,y2,z2)、A3(x3,y3,z3)からできる平面と、点t(x4,y4,z4)との距離をベクトルなどで求めることはできますか? x、y、zには任意の数字が入ります。 公式などありましたら教えてください。

  • 4点を通る球の式を求めたい。

    4点を通る球の式を求めたいのですが、 ネットなどを調べてもやり方が分からず、悩んでおります。 与えられた4点a,b,c,dから円の中心の座標(A,B,C)が求まれば、そこから半径rも求まり、 (x-A)^2+(y-B)^2+(z-C)^2=r^2 という式が導けると思うのですが。 考えた方法としては、 3点を通る平面の式 3点A:(x1,y1,z1)、B:(x2,y2,z2)、C:(x3,y3,z3) {(y2-y1)(z3-z1)-(y3-y1)(z2-z1)}(x-x1)+{(z2-z1)(x3-x1)-(z3-z1)(x2-x1)}(y-y1)+{(x2-x1)(y3-y1)-(x3-x1)(y2-y1)}(z-z1)=0 を利用して、 点(a,b,c),(b,c,d),(c,d,a)を通る平面の式を求めて、その3平面が交わる点が球の中心座標。 または、球は中心座標から、与えられた4点までの距離がすべて同じなので、2点間の距離の公式を用いて、 与えられた4点への距離がすべて等しい点を求めることが出来るのではないか。 というのが思いついたのですが、実際にそれを解こうとすると出来ません。 どなたか、方法をご存じの方いらっしゃらないでしょうか?

  • 3次元での直線と点の距離

    点A(x1,y1,z1)と点B(x2,y2,z2)を通る直線Cと 点D(x3,y3,z3)の距離を求めたいんですが、 公式などありますでしょうか?

  • 4次元以上の座標からできる平面と点との距離の求めかた

    4つ以上の座標をもつ3点A1(x1,y1,z1,w1...)、 A2(x2,y2,z2,w2...)、A3(x3,y3,z3,w3...)からできる平面と 点T(x4,y4,z4,w4...)との距離をベクトルなどで求めることは可能ですか? 公式などありましたら教えてください。

  • 2点間の距離を変えない1次変換

    お世話になります。 【問題】 行列 ( a b ) ( c d ) が、2点間の距離を変えない1次変換であるとき、ad - bc の値を求めよ。 【正解】 ad - bc = ±1 【自分の解答】 2点をA ( x1 , y1 ) , B ( x2 , y2 )、行列によって移される点をA' , B' とすると A' ( a*x1 + b*y1 , c*x1 + d*y1 ) B' ( a*x2 + b*y2 , c*x2 + d*y2 ) となる。 条件より ( A , B 間の距離 ) = ( A' , B' 間の距離 ) なので ( A , B 間の距離 )^2 = ( A' , B' 間の距離 )^2 よって ( x2 - x1 )^2 + ( y2 - y1 )^2 = { ( a*x2 + b*y2 ) - ( a*x1 + b*y1 ) }^2 + { ( c*x2 + d*y2 ) - ( c*x1 + d*y1 ) }^2 =( a^2 + c^2 )( x2 - x1 )^2 + 2( ab + cd )( x2 - x1 )( y2 - y1 ) + ( b^2 + d^2 )( y2 - y1 )^2 ∴ a^2 + c^2 = 1 ab + cd = 0 b^2 + d^2 = 1 (ここから不明) 【質問】 途中まで上のように頑張ってみましたが、正しいかわかりません。 正しければ続きかヒントを、間違いであれば修正かヒントを下さいませんか。 よろしくお願いします。

  • 点と曲面の距離

    曲面 x^2 + z^2 - 10y = 0 と、3次元空間における点と(ただし、x^2 + z^2 - 10y ≧ 0 なる点)の距離を求めたいのですが、どうしたらいいのでしょうか。曲面の任意の点の法線ベクトルは(x, -5, z)というのは解かったのですが…。よろしくお願いします。 ちなみにあまり関係ないかもしれませんが曲線の範囲は、0≦y≦10 ですね。

  • 点と直線の距離で・・・

    3点O(0.0)、A(x1,y1)、B(x2,y2)を頂点とする△ABCの面積Sをx1,x2,y1,y2を用いて表すという問題があります。 OA,OB,ABの三点間の距離を出すところからどの様にしたらいいのか分かりません。 途中の過程を教えてください。 2通り程やり方があるらしいので色々な答えお願いします。