• 締切済み

2点からその延長線上にある点の座標をしりたい

3D空間における座標やベクトルの計算について勉強しております。 点Aと点Bの座標がわかっている状態と仮定して、点ABを結んだ直線ABの延長線上に点Cが存在します。 求めたい点Cの座標の一部(z軸)はわかっていると仮定します。(x3, y3, 0) この時の、点Cにおける座標(x3とy3)はどのように計算して求めますか? (壁方向に動いてるとして、その壁の座標を知りたいのです。) Zの条件は z1>z2>z3=0 です。(左手座標系) XとYの条件は 0<=xもしくはy<=480 です。 また、点Cは線ABの延長線上に必ずありますが、点B-C間の距離は点A-B間の距離と同一とは限りません。(同一になることもあります) ほかに必要な条件や情報があれば教えてください。 よろしくお願いします。

みんなの回答

回答No.2

直線ABのベクトル方程式は,この上の点をP(x,y,z)として, AP=kAB OP=OA+tAB=(x_1,y_1,z_1)+t(x_2-x_1,y_2-y_1,z_2-z_1) ここでP=Cすなわちx=x_3,y=y_3,z=0として (x_3,y_3,0)=(x_1,y_1,z_1)+t(x_2-x_1,y_2-y_1,z_2-z_1) z成分の方程式より 0=z_1+t(z_2-z_1) ∴t=-z_1/(z_2-z_1) これをx,y成分の方程式に代入して, x_3=x_1+t(x_2-x_1) =x_1-z_1(x_2-x_1)/(z_2-z_1) ={x_1(z_2-z_1)-z_1(x_2-x_1)}/(z_2-z_1) =(x_1z_2-z_1x_2)/(z_2-z_1)(答) y_3=y_1+t(y_2-y_1) =y_1-z_1(y_2-y_1)/(z_2-z_1) ={y_1(z_2-z_1)-z_1(y_2-y_1)}/(z_2-z_1) =(y_1z_2-z_1y_2)/(z_2-z_1)(答)

  • gohtraw
  • ベストアンサー率54% (1630/2966)
回答No.1

A,B,Cが一直線上にあるということは、 →AC=p→AB と表わされるということです(pは実数)。これを成分で表わすと x3-x1=p(x2-x1) y3-y1=p(y2-y1) 0-z1=p(z2-z1) これはp、x1、y1の三つが未知数で式が三つあるので、あとは連立方程式を解くだけです。

関連する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”と求まります。 このとき、どのようにして上記の二点間の距離を求める公式が導かれるのでしょうか?? 自分で導こうと式を展開していくと、途中で非常に複雑になってしまい、 上のようなシンプルな式の形に到底辿り着けそうな気がしません。 どなたか、上記の公式を導き出せる方、出来るだけ分かりやすく教えて頂けるとありがたいです。 どうぞよろしくお願いします。

  • 2 点を通る直線から延長した先の座標の計算方法

    起点Aが(x10, y15)、中継点Bが(x25, y35)を通る直線があり、 その延長線上に終点Cがあるとします。 終点CのX座標が50である時、Y座標を求める計算方法を教えて欲しいです。 ExcelのVBAでプログラムしたいので、 数学的な特殊記号は用いない計算式でお願いします。 よろしくお願いします。

  • 直線上にある点の座標の求め方

    お世話になります。 点a(x1,y1)と点b(x2,y2)の直線上に点cを設けるとします。 設けた点cの座標を求めるプログラムをVBで作りたいのですが宜しくお願いします。 入力データは、点a(x1,y1)と点b(x2,y2)の座標と点aから点cの距離(k)を入力すると点cのx,yの座標を返すようなプログラムを考えています。 どうか宜しくお願いします。

  • 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の座標を求めるにはどの様な公式を使えばよろしいでしょうか?

  • 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点への距離がすべて等しい点を求めることが出来るのではないか。 というのが思いついたのですが、実際にそれを解こうとすると出来ません。 どなたか、方法をご存じの方いらっしゃらないでしょうか?

  • Excelである点に一番近い座標を求めたいのですが

    Excelである点に一番近い座標を求めたいのですが 今A列のx座標、B列のy座標で表される点(A1,B1)に距離が一番近い点を C列のx座標、D列のy座標で表される点の集合(C1,D1)~(C1000,D1000)のなかから探して (Cn,Dn)の値をE1、F1に表示させたいのですがどのようにすれば良いか教えてください。 引き続き(A2,B2)に近い点を(C1,D1)~(C1000,D1000)の中から探してE2,F2に表示するつもりです。 それを1000まで繰り返します。 比較する数が多すぎるため私の力ではどうにもなりません。すいませんがご協力お願いいたします。

  • 平面上 点の移動

    平面A(ax+by+cz+d=0)上に点P(X1,Y1,Z1)が存在して、 この点Pが、平面Aを基準とした、平面上にある直線B(a1x+b1y+c1z+d1=0)に沿って距離Lを移動した先の 座標値(X2,Y2,Z2)を計算したいのですが、どのように計算したら良いのでしょうか? よろしくお願いいたします。

  • 2点からの距離が等しい点の座標の式

    以下の例題について教えてください 例題1 2点A(1,-3)B3,2)から等距離にあって、しかも直線y=2x上にある点Pの座標を求めよ 直線y=2x上にある点Pの座標は(t,2t)とおける 点Pは2点A,Bから等距離→AP=BP これをAP二乗(以後^2)AB~2としてtについての方程式を解く 求める点Pの座標は点Pが直線y=2x上にあるから(t,2t)とおける AP=BPからAP^2=AB^2よって(t-1)^2+{2t-(-3)}^2=(t-3)^2+(2t-2)^2右辺左辺をそれぞれ展開して整理すると5t^2+10t+10=5t-14t+13ゆえに24t=3したがってt=1/8答えP=(1/8,1/4) ここまではなんとか理解できました 例題2 2点A(-1,-2)(2,3)から等距離にあるy軸上の点Pの座標を求めよ 求める点Pの座標は点Pがy軸上にあるから(o,a)とおける PA=PBPA^2=PB^2よって(-1-0)^2+(-2-a)2=(2-0)(3-a)^2 1+4+4a+a^2=4+9-6a+a^2 整理すると10a-=0 ゆえにa=4/5 したがってP(0,4/5) この問題の疑問点ですが例題1と2の方程式のt,2tと0aの位置が違うのはなぜですか? 単にどちらでもいいのですか?

  • ピクセル座標で2点間の直線上の座標点をPHPで求める方法を教えてくださ

    ピクセル座標で2点間の直線上の座標点をPHPで求める方法を教えてください。 やりたいことは、ピクセル座標点A、点Bを直線で結んだ時の ピクセル座標端の座標(X.Y)を求めたいです。 分かっている情報(引数)としては、 点AのX.Y(可変) 点BのX.Y(可変) ピクセル座標の高さ(範囲は0~n) ピクセル座標の幅(範囲は0~n) 条件としては 点Aは必ずピクセル座標の高さ、ピクセル座標の幅の範囲内の場所。 点Bはピクセル座標の高さ、ピクセル座標の幅の範囲外の場所。 点Aから見たときの点Bの場所は上下左右どこの位置でもOK 例えばサンプル画像の例1のように ピクセル座標の高さ30 ピクセル座標の幅40 点A(22.18)点B(20.39)を直線で結び この時のピクセル座標の高さ、ピクセル座標の幅上の座標点を求めたいです。 この場合Yの値は30は決まっているのですが、Xの値を求めたい。 例2の場合はXの値は0は決まっていてYの値を求めたいです。 何か数式にあてはめて求めることが出来るのでしょうか? PHPで作成したあとにそれをC++に置き換えも考えています。 色々考えてみたのですが、 まったくわからない状態です。 どなたかご教授いただければと思います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 3次元座標上の2直線の交点判定について

    座標A(x1,y1,z1)から座標B(x2,y2,z2)への線分ABと 座標C(x3,y3,z3)から座標B(x4,y4,z4)への線分CDがあり、 線分ABと線分CDが交点を持つかどうかのプログラムを作りたいです。 C言語かVBかFortranで記述され、DirectXやOpenGLのライブラリを使わない方法の サンプルソースの載っているページを教えていただけませんか? また、ご迷惑でなければソースコードを記述していただけると助かります。