このコードの状態から変換行列で平行移動させたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
H.MAI

このコードの状態から変換行列で平行移動させたい

#1

投稿記事 by H.MAI » 9年前

件名の通りなのですがこの状態から
カメラをすっと横に移動するようにオブジェクトを平行移動させたいです。
色々やってみたのですがどうしても分かりません…
そもそも行列の知識が乏しいのでそこが問題なんですが…
今回だけどなたか教えて頂けないでしょうか?

コード:

float objX = 100;   //オブジェクトX
float objY = 100;   //オブジェクトY
float rotX = 100;   //回転基準X
float rotY = 100;   //回転基準Y
float W = 50;       //幅
float H = 50;       //高さ
float x = objX - (rotX - (W/2));
float y = objY - (rotY - (H/2));
float angle = 45;
float Cos = cos(angle*RAD);
float Sin = sin(angle*RAD);
float tx = 20; //x移動量
float ty = 0;  //y移動量
 
//txとtyをどのようにして変換行列に加えれば良いのかわからない…
//以下のある座標を基準に回転するオブジェクトを更に平行移動したい(そのまま横にスライドするように)

//移動
set_obj_position((x*Cos - y*Sin) + rotX, (x*Sin + y*Cos) + rotY);
//回転
set_obj_rotation(angle);

H.MAI

Re: このコードの状態から変換行列で平行移動させたい

#2

投稿記事 by H.MAI » 9年前

解決しました!
普通に回転時の基準座標も一緒に移動するだけで良かったです。
お騒がせ致しました。

閉鎖

“C言語何でも質問掲示板” へ戻る