回答編集履歴

1

極座標について追記

2018/01/30 21:13

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -3,3 +3,29 @@
3
3
  X軸周り回転を表すクォータニオンを作るには[Euler](https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html)を使うのがいいでしょう。
4
4
 
5
5
  ということで、`p`を回転前の座標、`angle`をX軸周り回転角(度数法による)とすると、回転後の座標`q`は`Vector3 q = Quaternion.Euler(angle, 0, 0) * p;`で得られるかと思います。
6
+
7
+
8
+
9
+ ### 追記
10
+
11
+ 「極座標の考え方を使えば」という発想もいいと思います。
12
+
13
+ 今回はX軸周り回転ということですので、回転前後で座標のX成分は変化しないので無視できます。そこでX軸方向から見てみると、次元が1つ減って2次元座標に見えるはずです。
14
+
15
+ ですので、
16
+
17
+
18
+
19
+ - 直交座標(z, y)を極座標(r, θ)にする
20
+
21
+ - θに角度を加減算しθ'とする
22
+
23
+ - 極座標(r, θ')を直交座標(z', y')に戻す
24
+
25
+ - 求めたい座標は(x, y', z')となる
26
+
27
+
28
+
29
+ としてもいいかと思います。
30
+
31
+ 直交座標と極座標の相互変換については[ベクトルの基礎 - unity学習帳](http://unitylab.wiki.fc2.com/wiki/%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E5%9F%BA%E7%A4%8E)もご参考になりそうです。