2017-05-12 5 views
0

私は幅と高さとして500と800の寸法のダイアログを持っています。既定では(0,0)は左上隅に設定されていますが、私は指定された座標軸でマップするダイアログが必要です。それは私の対話が(左上、上)、(221,160)が右(下)であるように(-125、-64)したいです。しかし、ダイアログのサイズは同じままでなければなりません。C++のダイアログに座標を割り当てる

+0

単純なスケーリング。 [-125,221]の範囲のxを新しい範囲[0,500]の座標にスケーリングし、[-64,160]の範囲のyを新しい範囲[0,800]の座標にスケーリングします。結果のx、yを使用します。 – acraig5075

+0

正確には何が必要なのかは不明です。 GDIレンダリングのデバイス座標系と一致しない論理座標系が必要な場合は、[CDC](https://msdn.microsoft.com/en-us/library/fxhhde73.aspx)のメンバ ' SetViewportExt'/'SetViewportOrg'を呼び出して座標マッピングを設定します。 – IInspectable

答えて

-1

あなたがそれを使用することができ、単に等 X =(X + A) Y =(H/H)(W/W)(Y + B) 手段:

Int X,Y;//this is the coordinates of a point in the custom box 
int x,y;// the coordinates in the main box 
int a=-125,b=-64;//the coordinates of the point of the new axis 
int w=800,h=500;// the original width and height of the box 
int W=225+125; 
int H=160+64; 
input X,Y; 
x=(w/W)*(X-b); 
y=(h/H)*(Y-a); 
+0

私の主な言語は英語ではないので、十分なコメントをクリアできませんでした。 – MSh

+0

整数除算ではなく浮動小数点除算を使用してください。 – acraig5075

+0

thanks.Butはカスタムボックスをメインボックスにマッピングするための組み込み関数にはありません。 – user3655089

関連する問題