回転

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

回転

#1

投稿記事 by KEN » 15年前

回転が上手くいきません


//ここで角度を回す
void rotateMatrix( float Rad )
{
//行列初期化
D3DXMatrixIdentity( &posMat );
D3DXMatrixIdentity( &rotMat );

D3DXMatrixRotationZ( &rotMat, Rad );

for( int i = 0; i < 4; i++ ){
//回転を座標変換で反映させる
D3DXVec2TransformCoord( &z, &z, &rotMat );
}

//変換した値を戻す
MoveMatrix( v, x1, y1, 0.0f );
void Dire()
{
//ここで角度を出す
//自分の位置 - 敵の位置

tmpRad = atan2( A.y - Z.y, A.x - Z.x );

}

宜しくお願いします 画像

ookami

Re:回転

#2

投稿記事 by ookami » 15年前

正直よく分かりませんが

この辺は参考になりますでしょうか。
http://www.ceres.dti.ne.jp/~ykuroda/oya ... sic3d.html
http://w3e.kanazawa-it.ac.jp/math/categ ... uretu.html

static float prevRad = tmpRad;
というのもなんだか怪しい気がしますが...

ところで、
http://eow.alc.co.jp/Dire/UTF-8/?ref=sa
Dire ... 「ものすごい」??

Justy

Re:回転

#3

投稿記事 by Justy » 15年前

 よくわからない点が多いです。
 CUSTOMVERTEXの型の詳細とか、どうしてその処理をしているのか、とか。


 特に
>D3DXMatrixTranslation( &posMat, v, v, 0 );
に関しては vは CUSTOMVERTEX *型ですが、v[0]とかすると float型になるような特殊な型なのでしょうか?


 で、ookamiさんの
>static float prevRad = tmpRad;
>というのもなんだか怪しい気がしますが...
は同感ですね。

 この処理が自機と敵の角度を見て真横に移動させる関数なのだとしたら
1回目のrotateMatrixの処理で自機の横に敵が移動しているのに
2回目の評価で古い角度(1回目の処理をする前の角度)との差をみて
何度傾けるかを決めているように見えます。

KEN

Re:回転

#4

投稿記事 by KEN » 15年前

さいしょからうち直したら治りました

皆さんありがとうございました 画像

閉鎖

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