• ベストアンサー

ベクトルの変換について

あるベクトルのうち、特定の向きの力だけを減らしたベクトルを計算したいのですが、どうすればできるでしょうか? 2Dベクトルです。 0度、90度の向きの力を減らすのであればx、y要素を演算するだけでいいのかと思うんですが、それ以外の角度の方法がわかりません。 またゲームのプログラムで使うので、数学的でなくとも計算できれば構いません。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

ベクトル A=(a,b) というのは、 Ex=(1,0), Ey=(0,1)というx,y方向の単位ベクトルがあると A=a Ex + b Ey とベクトルを合成したものです。 このx成分をr倍する、というのは A'=(r a , b) = r a Ex + b Ey とすることです。 これを ベクトルV(|V|=1)の方向と、Vと垂直な単位ベクトルUと使って A=a Ex + b Ey = a' V + b' U となるようにa',b'を計算して、V方向をr倍して A' = r a' V + b' U あるいは。 ベクトルVの角度がθだとすれば、A を-θ回転させた Arot(-θ)のx成分がV方向に相当する。 そこで、 Arot(-θ) のxをr倍すれば、V方向に変化させたことになる。 あとは、+θ回転させもとの角度に戻す。 どちらも、結局は同じ式が出てくるはずです。

at_key
質問者

お礼

なるほど、そうすればいいのですね。 さらに違う方法も書いてくれてありがとうございます。

その他の回答 (2)

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.2

単なるベクトルA↑、B↑の引き算を実行すればよいのではありませんか。 A↑=(ax,ay)、B↑=(bx,by) C↑=A↑-B↑=(ax-bx,ay-by)=(cx,cy) cx=ax-bx, cy=ay-by

at_key
質問者

補足

ある向きの量を減らす、というのならそれでいいのですが、ある向きの量を乗算する、という風の事がやりたいのです。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

0度、90度の向きに分解して減らせば良いです。 元あるベクトルをA, x軸となす角度をθ、絶対値がrのベクトルをV としたとき B = A - V Bx = Ax - r cosθ By = Ay - r sinθ となります。sin, cosがわからなければ、「三角比」を検索してみてください。 参考 http://wakariyasui.sakura.ne.jp/p/mech/tikara/gousei.html

at_key
質問者

補足

説明が足りませんでした。ごめんなさい。 「減らす」というのはある量を減算するということではなく0.0~1.0の値を掛け算して減らしたい、ということです。

関連するQ&A

  • ベクトルのなす角

    a→=(1, √2, -1)がx軸、y軸、z軸の正の向きとなす角をそれぞれ求めるという問題で、 「a→のx軸の正の向き(0,√2,-1)、y軸の正の向き(1,0,-1)、z軸の正の向き(1,√2,0)としてそれぞれ内積を計算して角度はそれぞれ60度、45度、30度になる」 この解き方は間違っていますか?

  • 【至急!】接ベクトル型線積分の問題について

    領域DをD={(x,y)|x²+y²≦1}とし、その周囲の円周をCとする。Cには反時計回りの向きを与える。 ベクトル場v(x)=(2x-4y,3x-5y)の回転rotvを計算し、それを用いて接ベクトル型線積分 ∫c v(x)・dx の値を求めなさい。 という問題なのですが、rotv=7で7π-0π=7πで間違いないでしょうか?

  • 入射角反射角

    VC++6.0+DirectX8.0SDKで2Dのゲームを作っています。 壁にあたったら反射するという事をしたいのですが、 角度αの面に対してベクトルAがぶつかったとして 反射後のベクトルA'を計算するにはどうすればいいでしょうか? (x成分y成分の具体的な計算方法を知りたいです) 数学的に高校レベルかと思うのですが・・・ 恥ずかしながらご教授ください。

  • 大学の数学「空間とベクトル」の解法がわかりません。

    問題の解き方がわかりません。どなたか教えてください。 領域DをD={(x,y)|x^2+y^2≦1}とし、その周囲の円周をCとする。Cには反時計回りの向きを与える。ベクトルの場v(x)=(x+2y 3x+4y) -実際は縦2行- の回転rotvを計算し、それを用いて接ベクトル型線積分∫C v(x)・dx -実際はCは∫の下- の値を求めよ。 答えは「Π(パイ)」になっています。よろしくお願いします。 

  • ベクトル場の解析についてです

    f(x,y)=[-y/(x^2+y^2) , x/(x^2+y^2)]で与えられる二次元のベクトル場がある時 (1) 単位円上の点P(がx軸とπ/4の角度を成す原点からの直線が単位円と交わる点、第一象限) におけるf(x,y)を図示せよ (2) ベクトル場f(x,y)の発散を求めよ(原点は除く)   (3) 単位円に沿ったf(x,y)の反時計回りの積分 ∫f(x,y)・ds を求めよ    (dsは線素ベクトル、・は内積を表す) という問題を出され、解いたところ次のような答えになりました (1)は dx/dt=λ(-y/x^2+y^2) dy/dt=λ(x/x^2+y^2)として計算、x^2+y^2=1 (単位円ですよね) (2)はdivなので ∂f/∂x + ∂f/∂y = 2xy/(x^2+y^2)^2 - 2xv/(x^2+y^2)=0 (3)は -∫y/(x^2+y^2) dx -∫x/(x^2+y^2) dy     x=acosθ y=asinθ とおいて dx=-asinθdθ dy=acosθdθ          これを代入して計算すると-π/2となりました これらは正しいのでしょうか?

  • ベクトル場について

    ベクトル場が  (1) v(x,y)=yi-xj  (2) v(x,y)=-yi+xj    (vはベクトル、i,j は単位ベクトルです) で与えられているとき、(1)と(2)は同じベクトル場を表しているのでしょうか。 (2)のベクトル場は xy平面内で|v|=r  r ; 原点からの距離        vの向き ; 半径rの円周に沿って、反時計まわりの向き            θ ; vとy軸とのなす角 とすると v=(-rsinθ,rcosθ)     sinθ=y/r , cosθ=x/r    ∴v(x,y)=(-y,x) より              (2)のベクトル場は原点を中心とした円の円周方向を反時計まわりに向いたベクトルの集まりである事はわかりますが、 教科書では(1)のベクトル場も同じく原点を中心とした円の円周方向を反時計まわりに向いたベクトルの集まりとなると書いて図示してあります。 なぜ(1)のベクトル場がそのようになるのか教えて下さい。 (2)のx成分=-y ∴y=-x よって(2)のx成分=yとすると (2)のy成分=-x となり、結局これは(1)式である。という事でよいのでしょうか? (1)と(2)の発散はどちらも0となる事より同じベクトル場を表しているようにおもわれるのですが…。

  • 空間におけるベクトル解析でわからない問題があります

    xyz空間の原点Oを中心とし、1辺の長さが2である下図のような立方体ABCD-EFGHにおいて、向きのついた辺ベクトルABを向きのついた辺ベクトルHDに移す回転を表す行列を求めてください。 解答は 0...1...0 0...0...-1 -1...0...0 という問題で (1)なぜ以下の考えでは間違っているのか (2)では解答を導くにはどのように解けばいいのか を途中計算を交えてご説明していただけると助かります。 私が独力で解こうとした際、以下のように考えました。 向きのついた辺ベクトルABである最初の行列は 1...0...0 0...1...0 0...0...1 手順1 xz平面に関する鏡映Mxzによって、ベクトルABをベクトルDCに移す。 手順2 ベクトルDCをy軸を中心として、90°回転させる。するとベクトルHDになる。 Mxzの行列は 1...0...0 0...-1...0 0...0...1 (y座標がマイナスになる。) y軸を中心とする角度θ回転は Ry(θ)(x,y,z)= cosθ...0...sinθ 0...1...0 -sinθ...0...cosθ × x y z なのだから Mxz・My(π/2)= 1...0...0 0...-1...0 0...0...1 × 0...0...1 0...1...0 -1...0...0 = 0...0...1 0...-1...0 -1...0...0.

  • 数学 ベクトル

    数学 ベクトル 任意の3次元ベクトル場Aにおいて(∇×A)・Aの値を求めよ ベクトル場X=(xi+yj+zk)/(x^2+y^2+z^2)^(3/2) このベクトル場の発散と回転を計算せよ これらの問題の解き方を教えてください。

  • 数学演算のサンプルコード集のあるサイトを探しています(VB6)

    VB6で数学演算のソースコードのサンプル集を探しています。 例えば今回は3次元のベクトルをX,Y,Z軸周りに任意の角度だけ回転する行列をプログラムしたいので、アフィン変換のサンプルなんかないかと探しています。いいサイトがあれば教えていただけませんでしょうか。 よろしくお願いします。

  • ベクトルに関する問題です。

    ベクトルに関する問題です。 次の図のような力が働いていたとき、 合力の大きさFとx軸に対する角度θを求めるとき、 どのように計算すればよいのでしょうか? 解説お願いいたします。