ページ 11

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

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

コード:

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);

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

Posted: 2016年3月22日(火) 19:40
by H.MAI
解決しました!
普通に回転時の基準座標も一緒に移動するだけで良かったです。
お騒がせ致しました。