ページ 11

空間ベクトルをのばす

Posted: 2009年8月05日(水) 22:06
by はね
いつもお世話になっております。
基礎的なことだとは思いますが、詰まってしまって質問させてください。


三次元ベクトルABがあります。

ベクトルABをdだけ伸ばした先の点Cを求めるにはどうしたらいいのでしょうか?
ABCは直線上にあります。

図(?)を書くと以下のようになり、点Cを求めたいです。
A→B→→C 
     d
どうか教えて頂きたいです。
よろしくお願いします。

Re:空間ベクトルをのばす

Posted: 2009年8月05日(水) 22:18
by lbfuvab
vec(AB)をAからBまでのベクトルとします。
vec(OC) = vec(OA) + 3*vec(AB)

vec(AB) = vec(OB) - vec(OA)

です。
後は頑張って下さい。

Re:空間ベクトルをのばす

Posted: 2009年8月05日(水) 22:26
by lbfuvab
すいません。
d進んだ点でしたね。

vec(OC) = vec(OB) + d/abs(vec(AB))*vec(AB)

ですね。

Re:空間ベクトルをのばす

Posted: 2009年8月06日(木) 02:37
by Justy
[color=#d0b0c0" face="monospace]
>点Cを求めたいです
[/color]

 ベクトル ABの単位ベクトルを求めて、d倍し、点Bにそれを足せばいいんじゃないでしょうか。

Re:空間ベクトルをのばす

Posted: 2009年8月06日(木) 05:48
by lbfuvab
う~ん我ながら計算順序が見づらい・・・
分かりやすく書くと、
vec(OC) = vec(OB) + ( d * abs(vec(AB)) ) * vec(AB)

ちなみにベクトルの絶対値はベクトルの長さです。

Re:空間ベクトルをのばす

Posted: 2009年8月06日(木) 05:57
by sizuma
>vec(OC) = vec(OB) + ( d * abs(vec(AB)) ) * vec(AB)

えっと、こうじゃないですか??
d * (vec(AB) / abs(vec(AB))
つまりはJustyさんの

>ベクトル ABの単位ベクトルを求めて、d倍し、点Bにそれを足せばいいんじゃないでしょうか。

ってことですよね

Re:空間ベクトルをのばす

Posted: 2009年8月06日(木) 21:57
by はね
lbfuvab様
Justy様
sizuma様
返事が遅くなり申し訳ありません。

早速実装してみました。
きちんとラインが引けていました。
(遅れましたが、計測ソフトのライン表示に使用するつもりでした。)

vecBCのノルム=dにもなっておりました。

ありがとうございました。
またよろしくお願い致します。