プロが教える店舗&オフィスのセキュリティ対策術

環境はWIndows8.1タブレットです。

C言語でCreateEnhMetaFileから始まりEMFファイルを作っています。
座標が、下向きにプラスです。
これを数学の座標と同じく上にプラスに出来ないですか。

A 回答 (4件)

論理座標(GDI関数に与える座標)をX,Y


物理座標(描画面左上が原点のピクセル座標)を x,y とすると

x=(X - WindowOrgX)×ViewportExtentX÷WindowExtentX + ViewportOrgX
y=(Y - WindowOrgY)×ViewportExtentY÷WindowExtentY + ViewportOrgY

マッピングモードを MM_ANISOTROPIC にして上のパラメータを
APIで設定すれば、自由自在ですよ。
    • good
    • 0
この回答へのお礼

返答ありがとうございます


例えばViewportExtentXという文字を

http://www7b.biglobe.ne.jp/~makandat/VC/Group3/M …

で検索したのですが、見つけられません。

抽象的な内容だと理解できません。一歩も進めない状態です。
一行でもいいので、具体的なコードを教えてもらえませんか。

お礼日時:2016/06/19 04:17

>サンプルコードはありませんか


http://www7b.biglobe.ne.jp/~makandat/VC/Group3/M …

論理座標を物理(ピクセル)座標にどう対応させるか
定義するだけです。
    • good
    • 0
この回答へのお礼

返答ありがとうございます

座標を変える方法は分かりました。

例えば、座標(1,2)を指定したが、実際には二倍の値の(2,4)が指定したかのようにする(二倍に拡大した図を作る)設定は無いですか。

お礼日時:2016/06/13 03:56

座標系を自由にスケールさせたいなら


MM_ANISOTROPIC とか
MM_ISOTROPIC を使えば出来ます。
ビュ―ポートとウィンドウの設定が必要になります。

このあたりエンハンストメタファイルではなく
GDI(Graphic Device Interface)の基本事項です。
    • good
    • 0
この回答へのお礼

返答ありがとうございます

サンプルコードはありませんか

お礼日時:2016/06/10 19:20

setMapMode で出来ますよ。

    • good
    • 0
この回答へのお礼

返答ありがとうございます

出来ました

ところで倍率は設定できないのでしょうか。
今回は1倍だが、次は2倍の大きさで描写...とか。

お礼日時:2016/06/10 01:35

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