トップページ > 記事閲覧
拡大描画に関して
名前:パズ 日時: 2017/01/14 16:31

初めまして。 現在DXライブラリを使用しプログラム作成をおこない その中でDrawRectExtendGraph、DrawRectExtendGraphFを使用して 拡大描画を行っている箇所で上手くいかず質問させて頂きました。 DrawRectExtendGraph( 0, 0, 256, 128, 0, 0, 256, 128, "画像名", 省略 ); と記述すると左上(0, 0)、右下( 256, 128 )に横256、縦128のサイズで描画すると思うのですが DrawRectExtendGraph( 32, 32, 256, 128, 0, 0, 256, 128, "画像名", 省略 ); と記述すると左上(32, 32)、右下( 256, 128 )に横256 - 32、縦128 - 32のサイズで描画されてしまい 意図してる動作と違う為、上記関数以外に方法はありますでしょうか。 宜しくお願いします。
メンテ

Page: 1 |

Re: 拡大描画に関して ( No.1 )
名前:へけぽん 日時:2017/01/14 22:02

引数の指定しかたを間違っているのではないでしょうか DrawRectExtendGraph( int DestX1, int DestY1, int DestX2, int DestY2, int SrcX, int SrcY, int SrcWidth, int SrcHeight,int GraphHandle, int TransFlag ) ; グラフィックの(SrcX,SrcY)から横SrcWidth,縦SrcHeightサイズを切り取って 画面の左上(DestX1,DestY1)‐右下(DestX2,DestY2)の領域に描画するので 横256、縦128のサイズで描画したいのなら DrawRectExtendGraph( 32, 32, 32+256, 32+128, 0, 0, 256, 128, "画像名", 省略 ); と書かなければなりません 3番目と4番目の引数は描画する時の右下の座標であり、表示サイズではないので 左上が(0,0)でないなら、ずれている分だけ右下もずらしてあげないと小さくなってしまいます
メンテ
Re: 拡大描画に関して ( No.2 )
名前:パズ 日時:2017/01/15 16:46

やはり左上をずらしたなら右下もずらしてやらないと駄目なのですね。 回答して頂きありがとうございます。 >管理人様 時間はいつになっても構いませんのでサイズで描画出来る関数を用意して頂く事は可能でしょうか。 バージョンはDxLib_VC3_17aを使用しております。
メンテ
Re: 拡大描画に関して ( No.3 )
名前:管理人 日時:2017/01/16 02:40

同じような機能の関数を追加してしまうと混乱の元なので、関数の追加はできません 申し訳ありませんが、以下のような関数をお手元のプログラムに追加して使用してください m(_ _;m // 画像の指定矩形部分のみを拡大描画 // int DestX : 拡大描画先範囲の左上X座標 // int DestY : 拡大描画先範囲の左上Y座標 // int DestWidth : 拡大描画先範囲の幅 // int DestHeight : 拡大描画先範囲の高さ // int SrcX : 描画する画像の描画元範囲の左上X座標 // int SrcY : 描画する画像の描画元範囲の左上Y座標 // int SrcWidth : 描画する画像の描画元範囲の幅 // int SrcHeight : 描画する画像の描画元範囲の高さ // int GraphHandle : 描画する画像のグラフィックハンドル // int TransFlag : 透過色処理を行うか( TRUE:行う FALSE:行わない ) int DrawRectExtendGraph2( int DestX, int DestY, int DestWidth, int DestHeight, int SrcX, int SrcY, int SrcWidth, int SrcHeight, int GraphHandle, int TransFlag ) { return DrawRectExtendGraph( DestX, DestY, DestX + DestWidth, DestY + DestHeight, SrcX, SrcY, SrcWidth, SrcHeight, GraphHandle, TransFlag ) ; }
メンテ
Re: 拡大描画に関して ( No.4 )
名前:パズ 日時:2017/01/17 17:02

>同じような機能の関数を追加してしまうと混乱の元なので、関数の追加はできません 承知致しました。 >申し訳ありませんが、以下のような関数をお手元のプログラムに追加して使用してください m(_ _;m 方法を教えて頂きありがとうございます。 ご提示頂いた方法で希望していた動作を実現できました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存