回答編集履歴
1
極座標について追記
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)もご参考になりそうです。
|