昨日見た夢を教えて下さい

画像を回転させたいのです。
中心を軸として回転させたいのです。(Z軸を軸にして)

x=半径*cosθ
y=半径*sinθ

という式を利用してみたところ、中心を軸としてではなく
画像の外を軸として回転してしまいました

根本的に利用する式が間違っているようですが、
もしかしたら、この式でもできないですか…?

「DirectXを使ってテクスチャ(画像)」の質問画像

A 回答 (2件)

スプライト機能(LPD3DXSPRITE)を使って描画するか、D3DFVF_XYZRHWを指定すると、座標変換をすっ飛ばしてしまうのでいろいろと不具合の原因になります。


(もしID3DXSpriteのDraw関数を使っているなら、支点を指定する引数があります)

上記が関係ないとすると、No1氏の回答が有力かと思います。
3D上で動かすキャラは、移動・回転・拡大縮小、全て座標変換によって行います。なので、変換する順番で結果が大きく変わります。
例えば移動した後に回転を施すと、この質問のような症状になります。
    • good
    • 0
この回答へのお礼

知識不足でした、これからしることがいっぱいあって楽しみです。
(ポジティブに

ありがとうございます。
質問することがあると思いますので、またお世話になるかもしれません

お礼日時:2009/12/15 16:24

テクスチャを移動させてから回転させていませんか?


回転の中心はワールド座標系(イメージとしてはウィンドウの座標系→あくまでイメージであって厳密にはちがいますが)の原点になります。
ローカル座標系(テクスチャの座標系)の中心を中心として回転させたいのであれば、
1.テクスチャを移動する前に回転させるか
または、
2.テクスチャの原点をワールド座標系の原点に平行移動させてから
  回転させ、
  再び、表示したい位置に平行移動させる

となります。
    • good
    • 0
この回答へのお礼

なるほど、なるほど、なるほど。

文章にしづらいのでですが、回転させないでいいようにしてみました。
それでも動きました。つまり私は余分なことをしていたということです。

全然気づきませんでした、ありがとうございます。

回転に関してですが、おかげさまで、うまく回ってくれました。
原因はまだ曖昧ですが、本当にありがとうございます。

お礼日時:2009/12/15 16:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報