あるベクトル(Vector3)とのなす角が90度であるベクトル(Vector3)を求める方法を教えてください。
もとのベクトルを90度回転させる方法を考えて、quaternionなどについて調べましたが、うまくいきません。よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
投稿2021/06/13 23:31
総合スコア13553
0
ベストアンサー
もう一本(Vector3(1,0,0))などのベクトルを作り、外積を行えば、必ずなす角が90度であるベクトルが作れます。
もう少し「やりたいこと」と「やったこと」を記載して頂けると、答えやすくなると思います。
投稿2021/06/13 22:46
総合スコア3307
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
適当なベクトルと外積を取ることを考えると,
入力である
> あるベクトル
が,その適当なベクトルと平行な場合にうまく行かないのですよね.
(「かなり平行に近い」場合は結果としてOKなの? とかいう話になってくるとよくわからんです)
ozwk氏の回答にて示されているリンク先の話では,
「適当な,互いに直交する2本のベクトル」を用意しておいて,どっちを使うかを選ぶ,としてそこら辺を何とかしようとしています.
(もっと素敵な方法があればよいのだけど)
言いたいことは分かります。
私とozwk氏の回答以上の回答を出そうと思うと、質問者が何をしたいのかが焦点ですね。
考察ですが、タイトルに2Dとあるので斜めの地面からでもジャンプしたいとか、そんなのでしょうかね...
説明不足で申し訳ありません。
トランポリンのようなものを作りたいと考えていて、トランポリンの角度によってプレイヤーの飛ぶ方向を調整するというのが目的になります。
2021/06/15 07:34
必要な情報は,演算が実質2Dなのか否(=3D)か,なのだが.
"Vector3" という語からは,3次元の任意のベクトルを相手にする話であるように読めるが,
タイトルでは "2D" とされており,どっちやねん?っていう.
前者に関しては回答がついているし,その話は後者を包括するからそれで十分なのだけれども,
2次元平面上での回転であれば(回転軸が暗黙的に定まるのでその分だけ)話がより簡単になり得る.
2021/06/15 07:37
そもそもトランポリンのようなもので90度...? 法線を求めたいのか...?
fanaさん
タイトルにある通り2Dです、なのでozwkさんのurlの話を2次元で行うにはどうすればいいか教えていただけるとありがたいです。
ozwkさん
法線ベクトルを求めて、そこからx軸方向、y軸方向への力を決めようと考えていたのですが、他に方法があれば是非教えてください。
2021/06/15 09:58 編集
2次元の (x,y) に直交するベクトルで良いのであれば,単純に ( -y, x ) と ( y, -x ) です.
・内積取ったら0なことがわかりますな.
・(x,y,0) と { (0,0,1) or (0,0,-1) }との外積ですぞ.
・2次元の回転マトリクスをググってきて 90度 のときの値を求めればおk
…とか何とかいうよりも,とりあえず直感的にはいくつかの(x,y)の値について方眼紙の上で描いてみればこれでOKだとわかるかと.
外積をとる方法でいけました!ありがとうございました!
2021/06/16 08:01
(トランポリンの法線ならトランポリンのローカルx,y,z軸のいずれかではないだろうか...?)
2021/06/16 11:45 編集
内積は|a||b|cosθでθが90度のとき、cosθ=0なので、内積=0と読んだけど、(これでベクトルが求まるかはわからない)が
外積を扱えば解けるのですか
またどういう理由で。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。