![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?e8efa67)
ID3DXSprite::Drawメソッドに関して質問です。
ID3DXSprite::Drawメソッドの第3引数でスプライトの
中心を識別する座標を指定できますが、
この座標を画像の様に中心にセットします(単に2で除算するだけですが)。
スプライト上では中心を(0,0)と扱うので、仮にこのスプライトを
左上にあわせて描画するとします。
なお、スプライトのサイズと、ウィンドウのクライアントサイズは
完全に一致しているとします。
単純に中心までの幅はX、中心までの高さはXとなりますので、
スプライトをX、Y分だけ右下にずらせば
問題なく描画されるかと思っていたのですが、
何故か画像内の結果上の様に地味に左上に描画されてしまいます。
そこで画像内の結果下の様にそれぞれにさらに0.5pixlずらして描画しますと
これは想像どおりの位置で描画されます。
インターネットで調べるとテクスチャの描画の際には0.5pixl云々という記述が
あるのですが、この場合でも0.5pixlのずれを意識する必要があるのでしょうか?
それとも私自身、根本的に座標の求め方に問題があるのでしょうか?
どうか、ご指摘お願いします。
![「ID3DXSprite::Drawメソッ」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/767476_5497d12f3bab1/M.jpg)
No.1ベストアンサー
- 回答日時:
うろ覚えで、もうあまり詳しくもありませんので
参考までに。。。
まず、お使いの環境にもよると思います。
DirectX9時代、古いグラフィックカードなどの
制限でテクセルのアライメントを必要とした場合に
この0.5アラインの問題が発生します。
なので、この症状が起こっている環境を
ずっと使う、或いは上記の環境も視野に
入れたソフトウェアを作るならば、
意識する必要がでてきます。
が、基本的に、現在の主流になっている
カードのほとんどで、これらは対策や
準拠化がなされていますし、DirectX10以降では
この問題を対策する必要はありません。
別段、座標の求め方などに問題が
あるわけでもないと思います(たぶん。。。)
テクセルアライメントについては、
DirectX9なら、たしかドキュメントに記載が
あったはずなので、一読してみる
と良いかもしれません。
"テクセルのアライメント"でググってみると、MDSNにその旨が記載されていました。
…イジメですかね、マイクロソフト。Win32APIといい、ややこしいことが多すぎますね。
まさか、根本的に概念が異なるとは…。
自分的には、ピクセルは基本、Win32APIで整数値のみ指定できたので、UINTあたりでキャストしているものとばっかり思っていました。
実際に、10/1pixlが使用できるんですね。
とてもためになりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- レトロゲーム ファミコンのインベーダー。なぜ左右に動けるのか? 1 2022/07/05 14:19
- レトロゲーム ファミコンのインベーダの質問その3 背景にインベーダーを描画したとしても、なぜ動けるのか? 3 2022/07/08 16:58
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Illustrator(イラストレーター) 「頂点で線分を伸ばす」作業がうまく行かない。 1 2022/09/09 10:19
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- その他(映画) 昔の映画の3Dリメイク版。どうやって作るのか? 4 2023/02/16 10:17
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- 美術・アート ペンタブとオフィス系ソフト 1 2022/10/08 19:27
- 美術・アート デッサンで使うカルトン、A4サイズでも使える? 1 2022/03/22 18:13
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
JAVAでの背景画像表示
-
C# DataGridView のCellPaintin...
-
Windows OS/Mozilla系ブラウザ...
-
インターフェースとトレイトっ...
-
エクセルVBAで、条件に一致する...
-
【JAVA】与えられた金額を貨幣...
-
変数名の付け方
-
「天声人語」をインターネット...
-
「タイプ初期化子が例外をスロ...
-
戻り値がクラスオブジェクト
-
EXCEL VBAにて動的にCheckBOXを...
-
オブジェクトレベルとメタレベル
-
canvasに描画したものを全て削...
-
標準モジュールとクラスモジュ...
-
private static という変数の修飾
-
【sendkeysメソッドが動かずに...
-
Javaの関数名が長い?
-
『独習JAVA』が難しい
-
タトゥーや墨を入れる人の共通点
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVAでの背景画像表示
-
VB.NET フォーム上に描いたグ...
-
VB.NETのSendMessageを教えてく...
-
C# DataGridView のCellPaintin...
-
Javaで文字の角度を変えて表示...
-
canvasで表示されてる画像を1...
-
画面のちらつきの原因が知りた...
-
Labelコントロールの背景をグラ...
-
重なった要素上でのイベントで...
-
java.awt.peer?
-
Canvas等の図形を移動する時,直...
-
OpenLayersの描画を固定で表示...
-
ID3DXSprite::Drawメソッドに関...
-
SwingとEDT(イベントディスパッ...
-
C#のGraphicsクラスについてです。
-
複数画像表示切り替え Visual c++
-
Androidのフォントサイズ(SP)と...
-
Androidで画像の中で指定した範...
-
描画処理が実行されない
-
JavaScript でスライダーを作る...
おすすめ情報