質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

5440閲覧

unity(2D) あるベクトルと90度をなすベクトルを求める

etcetera

総合スコア24

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2021/06/13 15:29

あるベクトル(Vector3)とのなす角が90度であるベクトル(Vector3)を求める方法を教えてください。
もとのベクトルを90度回転させる方法を考えて、quaternionなどについて調べましたが、うまくいきません。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

投稿2021/06/13 23:31

ozwk

総合スコア13553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

もう一本(Vector3(1,0,0))などのベクトルを作り、外積を行えば、必ずなす角が90度であるベクトルが作れます。
もう少し「やりたいこと」と「やったこと」を記載して頂けると、答えやすくなると思います。

投稿2021/06/13 22:46

stdio

総合スコア3307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2021/06/14 01:20

適当なベクトルと外積を取ることを考えると, 入力である > あるベクトル が,その適当なベクトルと平行な場合にうまく行かないのですよね. (「かなり平行に近い」場合は結果としてOKなの? とかいう話になってくるとよくわからんです) ozwk氏の回答にて示されているリンク先の話では, 「適当な,互いに直交する2本のベクトル」を用意しておいて,どっちを使うかを選ぶ,としてそこら辺を何とかしようとしています. (もっと素敵な方法があればよいのだけど)
stdio

2021/06/14 22:23

言いたいことは分かります。 私とozwk氏の回答以上の回答を出そうと思うと、質問者が何をしたいのかが焦点ですね。 考察ですが、タイトルに2Dとあるので斜めの地面からでもジャンプしたいとか、そんなのでしょうかね...
etcetera

2021/06/15 07:23

説明不足で申し訳ありません。 トランポリンのようなものを作りたいと考えていて、トランポリンの角度によってプレイヤーの飛ぶ方向を調整するというのが目的になります。
fana

2021/06/15 07:34

必要な情報は,演算が実質2Dなのか否(=3D)か,なのだが. "Vector3" という語からは,3次元の任意のベクトルを相手にする話であるように読めるが, タイトルでは "2D" とされており,どっちやねん?っていう. 前者に関しては回答がついているし,その話は後者を包括するからそれで十分なのだけれども, 2次元平面上での回転であれば(回転軸が暗黙的に定まるのでその分だけ)話がより簡単になり得る.
ozwk

2021/06/15 07:37

そもそもトランポリンのようなもので90度...? 法線を求めたいのか...?
etcetera

2021/06/15 09:38

fanaさん タイトルにある通り2Dです、なのでozwkさんのurlの話を2次元で行うにはどうすればいいか教えていただけるとありがたいです。 ozwkさん 法線ベクトルを求めて、そこからx軸方向、y軸方向への力を決めようと考えていたのですが、他に方法があれば是非教えてください。
fana

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だとわかるかと.
etcetera

2021/06/16 07:59

外積をとる方法でいけました!ありがとうございました!
ozwk

2021/06/16 08:01

(トランポリンの法線ならトランポリンのローカルx,y,z軸のいずれかではないだろうか...?)
txty

2021/06/16 11:45 編集

内積は|a||b|cosθでθが90度のとき、cosθ=0なので、内積=0と読んだけど、(これでベクトルが求まるかはわからない)が 外積を扱えば解けるのですか またどういう理由で。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問