![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
また、遅くなりました。
そうですね、簡単な例を使えば、
>D3DXMatrixScaling(&Mat1, 1.5, 1, 1);
つい先日返答してくれたソースのこれの第二引数と第三引数が
それにあたります。
つまり、スプライト描画するテクスチャのサイズを拡大して
(この場合横1.5倍、縦1.0倍)表示してくれるのです。
まあ、微妙な回答で申し訳ない。
後、俺の記述したソースの
D3DXMatrixTransformation2D(
&Mat,
NULL,
0,
&vec2,
NULL,//この部分(D3DXVECTOR2 型)回転の中心座標
0,//この部分(float 型)回転角度(ラジアン)
NULL );
「この部分」って記述してあるところの数値を変更してみると
回転(角度の変更も可能でした。)
最後ですが俺もいい勉強になりました。
ありがとうございます。
ご回答ありがとうございます。
いや~、それにしてもDirectXって複雑ですね・・・。
もっとバージョンが下がるとさらにやる事が多くなっている筈ですから楽だと思うべきなのでしょうが・・・。
先人の努力に感謝しっぱなしです(^ ^;)
3回にわたる丁寧な解説に厚く御礼申し上げます。
これからも努力しいつか教える立場になりたいものです。
No.2
- 回答日時:
ずいぶんお待たせしました。
ってもう自分で処理したよって・・・
orz
そうでしたか。
まあ俺の研究を少し書き示します。
エーとこちらはあなたが返信いただいたものですが変更部分を
まず書き示します。
LPDIRECT3DTEXTURE9 pTexture; // テクスチャ
D3DXVECTOR3 Vec3Pos; // 表示位置
D3DXVECTOR2 Vec2Scale; // 拡大
D3DXMATRIX Mat;
D3DXMatrixTransformation2D(&Mat, NULL, 0, &Vec2Scale, NULL, 0, NULL);
pSprite->SetTransform(&Mat);
pSprite->Draw(pTexture, NULL, NULL, &Vec3Pos, 0xFFFFFFFF);
私の研究では変更部分は
D3DXMatrixTransformation2D() の第4引数Vec2Scale
の値を変えてみてください。
Vec2Scale.x = 1.0;//1.0 は現尺2.5なら2.5倍の横幅に変化
Vec2Scale.y = 1.0;//1.0 は現尺2.5なら2.5倍の縦幅に変化
のようにやってみてください。
ちなみに私のソースみたいなものをコピペしときます。
それでも駄目ならもう一度返信してください。
LPD3DXSPRITE pSprite;//スプライトインターフェイス
LPDIRECT3DTEXTURE9 pTexture;//スプライトに使うテクスチャー
D3DXMATRIX Mat;
D3DXVECTOR2 vec2;//拡大率
vec2.x = 1.5;vec2.y = 1;
D3DXMatrixTransformation2D(
&Mat,
NULL,
0,
&vec2,
NULL,
0,
NULL );
pSprite->SetTransform(&Mat);
pSprite->Draw(
pTexture,
NULL,
NULL,
&Position,
D3DCOLOR_ARGB(255,255,255,255) );
出来る限りNULL とかで関係ない部分を削除しましたので
わかると思います。
この回答への補足
ご回答ありがとうございます。
なんだか適当にやっていたら出来てしまいました(^ ^;)
まるで異なる方法ですが・・・。
一応ソースコードを載せておきます。
LPD3DXSPRITE pSprite; // スプライト
D3DXMATRIX Mat, Mat1, Mat2;
D3DXMatrixScaling(&Mat1, 1.5, 1, 1);
D3DXMatrixTranslation(&Mat2, 320, 16, 0);
Mat = Mat1 * Mat2;
pSprite->SetTransform(&Mat);
pSprite->Draw(pTexture, NULL, NULL, NULL, 0xFFFFFFFF);
こんな方法でいいんでしょうかねぇ・・・。
以前見たサンプルで掛け算があった気がしたので・・・。
自分でも何をしているのかよくわかっていません。
まず行列がわかりませんので(^ ^;)
ところで
Vec2Scale.x = 1.0;//1.0 は現尺2.5なら2.5倍の横幅に変化
Vec2Scale.y = 1.0;//1.0 は現尺2.5なら2.5倍の縦幅に変化
の部分が余り良くわからなかったのですが・・・。
お暇でしたらご回答いただけたら幸いです。
No.1
- 回答日時:
とりあえずどのようにソースを組んでいるのかを
教えてください。下の容量で簡潔でいいので。
まあ、俺も出来なかったもの・・ですが、
協力しますよ。
LPD3DXSPRITE pSprite;//スプライトインターフェイス
LPDIRECT3DTEXTURE9 pTexture;//スプライトに使うテクスチャー
pSprite->Draw(
pTexture, //テクスチャー
NULL, //描画範囲
NULL, //拡大率
NULL, //回転の中心座標
0.0f //回転角
NULL, //平行移動の大きさ
D3DCOLOR_ARGB(255,255,255,255) ); //色
この回答への補足
ご回答ありがとうございます。
ちなみに書き忘れていましたが、言語はC++です。
Vec3Pos, Vec2Scale には値が入っていると考えてください。
LPDIRECT3DTEXTURE9 pTexture; // テクスチャ
D3DXVECTOR3 Vec3Pos; // 表示位置
D3DXVECTOR2 Vec2Scale; // 拡大
D3DXMATRIX Mat;
D3DXMatrixTransformation2D(&Mat, NULL, 0, &Vec2Scale, NULL, 0, NULL);
pSprite->SetTransform(&Mat);
pSprite->Draw(pTexture, NULL, NULL, &Vec3Pos, 0xFFFFFFFF);
・・・といった感じで行っています。
Vec3Posで指定した座標に表示されず困っております。
恐らく拡大の中心が(0,0)になっているからだと思いますが、テクスチャの中心を拡大の中心にしても指定位置にいきませんし・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) CMD等でPC操作(excel開く等)を自動化させたい 1 2023/03/15 09:53
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- その他(ゲーム) Windowsアスカ見参プレイするのに下の通りのが必要みたいですがメモリー、ビデオメモリーHDD別々 3 2022/09/19 23:24
- 政治 竹島の日の前に竹島カレー弁当を開発して販売を拡大することを勧めたいです。!いかがですか。?? 7 2022/12/08 08:02
- Windows 10 VirtualBox からWindows XP を起動すると画面が真っ暗になってしまいました 4 2023/07/09 16:19
- デジタルカメラ 録画した4K動画を、フルピクセルで再生したい 5 2023/05/10 00:05
- 確定申告 e-Taxってどうやって使うんですか? 3 2023/03/07 18:39
- Windows 8 SSD換装の注意点? アプリケーションインストールでの弊害? 4 2023/01/06 04:18
- ドライブ・ストレージ HDDの未割り当て領域が認識されない 7 2022/11/27 18:51
- Google Maps google map 1 2023/02/09 12:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Unityでピクセル情報を取得する...
-
UWSCのCHKIMG関数について
-
PHPでエクセルのグラフを作成ま...
-
SDKにてRAW画像(ヘッダ情報0)...
-
UWSCでPEEKCOLORを使い指定ウィ...
-
Excel VBAで他アプリケーション...
-
VBAでCOPYを繰り返すと、処理が...
-
「ご処理進めて頂きますようお...
-
Excelシート上のマクロを登録し...
-
「PC Helpsoft Driver Updated...
-
エクセルで、日付を入力すると...
-
サブフォームのイベント取得
-
UWSC 画像認識で条件分岐
-
switch の範囲指定
-
スマホF-51Bに緊急時情報画面で...
-
VBA シート毎に画像挿入
-
csvに保存しているデータをURL...
-
DAOでSQLServerに接続し、LeftJ...
-
VBA エンターキーでイベントに...
-
お家デートをしててハグを長い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで画像を貼り付ける...
-
C#で、画像の、指定した座標の...
-
Excel VBAで他アプリケーション...
-
VBでクリックイベントを発生さ...
-
外付ディスプレイで AutoHotkey...
-
UWSC画像認識で座標の位置がず...
-
バナーにリンクを埋め込む方法
-
UWSCのCHKIMG関数について
-
マウスストーカーのようにカー...
-
VBA HTML要素または文字の座標...
-
uwscについて、同一の画像(仮...
-
マウスイベントが動かない
-
UWSファイルの編集?
-
VBAで ScreenToClient を使いたい
-
Unityでピクセル情報を取得する...
-
グラフの変化をアニメにするには?
-
エディットボックスの色変更に...
-
JPGの画像ファイルの結合
-
puctureBoxの一部の色を変えた...
-
マウスカーソルの移動
おすすめ情報