質問編集履歴

2

文章を修正

2020/12/08 11:30

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 物体を中心に回転するという処理を実装したい。
1
+ 原点ではなく点Pを中心に回転するという処理を実装したい。
test CHANGED
File without changes

1

文章とタイトルを編集しました。

2020/12/08 11:29

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- モ○ハンのカメラ回転を作りたい 物体を中心に回転するカメラを実装したい。
1
+ 物体を中心に回転するという処理を実装したい。
test CHANGED
@@ -1,4 +1,18 @@
1
+ 提示コードのここですのコメント部の二行ですが 
2
+
3
+ 質問1、現在はコードでは原点中心に回転するコードになっており自分のやりたいことは原点ではなく
4
+
1
- タイトル通りですがクォータミオン使ってモ○ハンなどで右スティックを動かすと視点がキャラクタを中心に回るあのカメラ回を実装いのですがどうすればいいでしょうか?クォータミオン使って指定した軸θど回転するという処理実装できましたがここから先をどうしたらいいかわかりませんどうすればいいのでしょうか?
5
+ 物体を中心に回転してほしいので物体P座標中心に回転するはどうすればいいのでしょうか?
6
+
7
+
8
+
9
+ 質問2 また視点である二行目はどうすれば常に物体を見つめるという状態を作れるのでしょうか?
10
+
11
+
12
+
13
+ 回転は実装できましたがその後がわからなく参考サイトではそのあたりの回答がないので困っています。
14
+
15
+ 参考サイト: https://teratail.com/questions/251067
2
16
 
3
17
 
4
18
 
@@ -8,13 +22,7 @@
8
22
 
9
23
 
10
24
 
11
- 参考サイト: http://marupeke296.com/DXG_No10_Quaternion.html
12
-
13
-
14
-
15
25
  ```cpp
16
-
17
-
18
26
 
19
27
  //アップデート
20
28
 
@@ -50,8 +58,6 @@
50
58
 
51
59
  glm::vec3 v(0.0f,-1.0f,0.0f); //回転する向き
52
60
 
53
- float speed = 3;
54
-
55
61
  glm::qua<float> Q(cos((PI_ * speed) / 2.0f), glm::dot(v.x, sin((PI_ * speed) / 2.0f)), glm::dot(v.y, sin((PI_ * speed) / 2.0f)), glm::dot(v.z, sin((PI_ * speed) / 2.0f)));
56
62
 
57
63
  glm::qua<float> R(cos((PI_ * speed) / 2.0f), glm::dot( -v.x, sin((PI_ * speed) / 2.0f)), glm::dot(-v.y, sin((PI_ * speed) / 2.0f)), glm::dot(-v.z, sin((PI_ * speed) / 2.0f)));
@@ -84,11 +90,17 @@
84
90
 
85
91
  */
86
92
 
93
+
94
+
95
+ // ここのコード
96
+
97
+ camera->setMove( w );
98
+
99
+ //camera->setCenter( mh->getPosition());
87
100
 
88
101
 
89
- camera->setMove(w);
90
102
 
91
- camera->setCenter( mh->getPosition() - camera->getPosition());
103
+
92
104
 
93
105
 
94
106
 
@@ -102,4 +114,6 @@
102
114
 
103
115
  }
104
116
 
117
+
118
+
105
119
  ```