ある二次元ベクトルに直角な二次元ベクトルを求めるには

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
hy0nsu

ある二次元ベクトルに直角な二次元ベクトルを求めるには

#1

投稿記事 by hy0nsu » 6年前

タイトルのとおりです。
内積と単位ベクトルの連立方程式という方法があるようですが、大量に求める必要があるため、
もっと計算量を減らしたいのですが、いい方法はないでしょうか。

あるベクトルに対する直角なベクトルは2つありますが、どちらも求めたいです。また、求めたベクトルの長さは単位ベクトルでも、
そうでなくても大丈夫です。

よろしくお願いします。

usao

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#2

投稿記事 by usao » 6年前

2次元であれば,元のベクトルを90°回転させればよいのではないでしょうか.
(最終的な処理は非常に簡単になります)

non
記事: 1097
登録日時: 9年前

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#3

投稿記事 by non » 6年前

元のベクトルは、どのように表現されてますか?
non

hy0nsu

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#4

投稿記事 by hy0nsu » 6年前

>>usaoさん

その方法は思いつきませんでした。ありがとうございました。


>>nonさん

ベクトルの表現とは、どういうことでしょうか。
憶測で答えますが、今はDirectXを使ったゲーム制作をしています。
ベクトルの型はD3DXVECTOR3です。

non
記事: 1097
登録日時: 9年前

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#5

投稿記事 by non » 6年前

ベクトルが複素表現なら(たとえば、2+3j )
 j を掛けると90°回転します。
non

hy0nsu

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#6

投稿記事 by hy0nsu » 6年前

>>nonさん

複素表現ではありません。
申し訳ないのですが、複素表現という単語を今はじめて聞きました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#7

投稿記事 by softya(ソフト屋) » 6年前

1つのベクトルに垂直なベクトルだと2方向あると思いますが、どちらでも良いのですか?
それであればusaoさんの言われる簡単な方法が一番早いでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
たろす
記事: 2
登録日時: 6年前

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#8

投稿記事 by たろす » 6年前

原点からのベクトルならたぶん
(-y,x)
で求まると思います
あぁ・・・次はデバッグだ

non
記事: 1097
登録日時: 9年前

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#9

投稿記事 by non » 6年前

hy0nsu さんが書きました:>>nonさん

複素表現ではありません。
申し訳ないのですが、複素表現という単語を今はじめて聞きました。
そんなに難しい話ではありません。複素数は数Cで習うのでしょうか?

xy座標系で、原点からのベクトルで x=2、y=3 への矢線だとすると、y方向に虚数のi(電気屋はjを使う)を
つけて
2+3jと表します。
虚数jの計算ですが、j×j=j^2=-1 という性質があります。(j^2はjの2乗)
前に書いたように、90度回転させるにはjを掛けます。
(2+3j)×j=2j+3j^2=2j-3=-3+2j
となり、たろすさんが書かれている、(-y,x)になります。
ちなみに、-90度回転させるには、jで割ります。
non

hy0nsu

Re: ある二次元ベクトルに直角な二次元ベクトルを求めるには

#10

投稿記事 by hy0nsu » 6年前

(-y,x)で無事に求めることができました。

教えてくださった方々ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る