質問編集履歴
3
改行整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
[以前の質問](https://teratail.com/questions/213432)において、クォータニオンとベクトルの掛け算に関してもご教示いただいたのですが、
|
4
|
-
[こちらの質問](https://teratail.com/questions/315139)を拝見して、クォータニオンとベクトルの掛け算を応用すれば、
|
4
|
+
[こちらの質問](https://teratail.com/questions/315139)を拝見して、クォータニオンとベクトルの掛け算を応用すれば、
|
5
|
+
こういった処理もできるのかと、目からウロコだったのですが、
|
5
6
|
コードをパッと見ただけではわからず、自分なりに簡略化したコードを書いて試してみたのですが、
|
6
7
|
その理解が合っているかご教示お願いします。
|
7
8
|
|
@@ -43,10 +44,11 @@
|
|
43
44
|
(このようにイメージしても間違いでなければ、このように覚えたいと思っています)。
|
44
45
|
|
45
46
|
・質問2。
|
47
|
+
上記試したコードですが、
|
46
|
-
|
48
|
+
まず、「center + radius」が円の中心centerを基点としたradiusの位置ベクトルの位置とイメージできて、
|
47
|
-
これに、radiusベクトルにrのクォータニオンを掛けた「center + (r * radius)」で、
|
49
|
+
これに、radiusベクトルにrのクォータニオンを掛けた「center + (r * radius)」で、
|
48
|
-
回転させた位置ベクトルの位置となり、
|
50
|
+
centerから伸びるradiusベクトルをrのクォータニオンで回転させた位置ベクトルの位置となり、
|
49
|
-
ワールド軸のY軸の回転に関して0~180度まで回転して変化するので、
|
51
|
+
このrのクォータニオンがfor文の中で、ワールド軸のY軸の回転に関して0~180度まで回転して変化するので、
|
50
52
|
上記コードは、centerを円の中心とした、centerを基点としたradiusの位置ベクトルの位置から、
|
51
53
|
コンパスで円を描くように、円の中心角が、ワールド軸のY軸の右ねじ周りに0~180度まで変化する円運動と
|
52
54
|
なっている、という理解で合っていますか?
|
2
改行整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,11 +29,13 @@
|
|
29
29
|
```
|
30
30
|
|
31
31
|
・質問1。
|
32
|
+
以前の質問では、クォータニオンとベクトルの掛け算は、
|
32
|
-
|
33
|
+
「あるベクトルをあるクォータニオンで回した結果」と教わったのですが、
|
33
34
|
```C#
|
34
35
|
this.transform.rotation * dir
|
35
36
|
```
|
37
|
+
に関しては、
|
36
|
-
|
38
|
+
「thisのローカル軸を基準に伸びるベクトルdir」というイメージでもおおよそ合っていると教わったので、
|
37
39
|
```C#
|
38
40
|
Quaternion.Euler(0, 0, 0) * dir
|
39
41
|
```
|
@@ -46,8 +48,8 @@
|
|
46
48
|
回転させた位置ベクトルの位置となり、このrのクォータニオンがfor文の中で、
|
47
49
|
ワールド軸のY軸の回転に関して0~180度まで回転して変化するので、
|
48
50
|
上記コードは、centerを円の中心とした、centerを基点としたradiusの位置ベクトルの位置から、
|
49
|
-
コンパスで円を描くように、円の中心角が、ワールド軸のY軸の右ねじ周りに0~180度まで変化する円運動と
|
51
|
+
コンパスで円を描くように、円の中心角が、ワールド軸のY軸の右ねじ周りに0~180度まで変化する円運動と
|
50
|
-
という理解で合っていますか?
|
52
|
+
なっている、という理解で合っていますか?
|
51
53
|
|
52
54
|
・質問3。
|
53
55
|
[こちらのサイト](https://virtualcast.jp/blog/2019/11/quaternion/)にoperator overload(オペレーターオーバーロード)という言葉が出てくるのですが、
|
1
改行で整形
title
CHANGED
File without changes
|
body
CHANGED
@@ -45,8 +45,9 @@
|
|
45
45
|
これに、radiusベクトルにrのクォータニオンを掛けた「center + (r * radius)」で、centerから伸びるradiusベクトルをrのクォータニオンで
|
46
46
|
回転させた位置ベクトルの位置となり、このrのクォータニオンがfor文の中で、
|
47
47
|
ワールド軸のY軸の回転に関して0~180度まで回転して変化するので、
|
48
|
-
上記コードは、centerを円の中心とした、centerを基点としたradiusの位置ベクトルの位置から、
|
48
|
+
上記コードは、centerを円の中心とした、centerを基点としたradiusの位置ベクトルの位置から、
|
49
|
-
円の中心角が、ワールド軸のY軸の右ねじ周りに0~180度まで変化する円運動となっている、
|
49
|
+
コンパスで円を描くように、円の中心角が、ワールド軸のY軸の右ねじ周りに0~180度まで変化する円運動となっている、
|
50
|
+
という理解で合っていますか?
|
50
51
|
|
51
52
|
・質問3。
|
52
53
|
[こちらのサイト](https://virtualcast.jp/blog/2019/11/quaternion/)にoperator overload(オペレーターオーバーロード)という言葉が出てくるのですが、
|