質問編集履歴
2
文章を修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
原点ではなく点Pを中心に回転するという処理を実装したい。
|
body
CHANGED
File without changes
|
1
文章とタイトルを編集しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
物体を中心に回転するという処理を実装したい。
|
body
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
+
提示コードのここですのコメント部の二行ですが
|
2
|
+
質問1、現在はコードでは原点中心に回転するコードになっており自分のやりたいことは原点ではなく
|
1
|
-
|
3
|
+
物体を中心に回転してほしいので物体Pの座標を中心に回転するにはどうすればいいのでしょうか?
|
2
4
|
|
5
|
+
質問2 また視点である二行目はどうすれば常に物体を見つめるという状態を作れるのでしょうか?
|
3
6
|
|
7
|
+
回転は実装できましたがその後がわからなく参考サイトではそのあたりの回答がないので困っています。
|
8
|
+
参考サイト: https://teratail.com/questions/251067
|
4
9
|
|
5
10
|
|
6
|
-
参考サイト: http://marupeke296.com/DXG_No10_Quaternion.html
|
7
11
|
|
12
|
+
|
8
13
|
```cpp
|
9
|
-
|
10
14
|
//アップデート
|
11
15
|
void Game::Update()
|
12
16
|
{
|
@@ -24,7 +28,6 @@
|
|
24
28
|
|
25
29
|
|
26
30
|
glm::vec3 v(0.0f,-1.0f,0.0f); //回転する向き
|
27
|
-
float speed = 3;
|
28
31
|
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)));
|
29
32
|
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)));
|
30
33
|
|
@@ -41,13 +44,17 @@
|
|
41
44
|
printf("w.y: %.2f\n", w.y);
|
42
45
|
printf("w.z: %.2f\n\n\n", w.z);
|
43
46
|
*/
|
47
|
+
|
48
|
+
// ここのコード
|
49
|
+
camera->setMove( w );
|
50
|
+
//camera->setCenter( mh->getPosition());
|
44
51
|
|
45
|
-
camera->setMove(w);
|
46
|
-
camera->setCenter( mh->getPosition() - camera->getPosition());
|
47
52
|
|
53
|
+
|
48
54
|
//camera->setMove(pos);
|
49
55
|
mh->Update();
|
50
56
|
|
51
57
|
KeyInput(); //キー入力
|
52
58
|
}
|
59
|
+
|
53
60
|
```
|