MFC控制項程式設計 座標系轉化

2021-06-16 12:31:42 字數 611 閱讀 8133

假定point為螢幕座標系中的一點,求取實際影象中的對應點。

1)螢幕座標系轉化為使用者座標系

this->clienttoscreen(&point)點的座標就轉化為使用者座標系中的乙個點。舉例來說,如果是基於對話方塊程式設計,那麼使用者區就是整個對話方塊的範圍。

2)使用者座標系轉化為實際控制項座標系

在基於對話方塊程式設計中,為了使得使用者介面視覺化友好,一般顯示影象都會顯示在picture control控制項中,那麼轉化為控制項座標系中經過兩個步驟:

首先獲取控制項的cwnd,然後呼叫clienttoscreen(&point),這裡已然將使用者座標系當做空間座標系的螢幕座標系,那麼point轉化為實際控制項座標系中的點。

3)實際控制項座標系轉化為影象中的點

首先,獲取控制項的rect, getdlgitem(idc_****)->getclientrect(&rect);

然後,在控制項座標系內按比例轉化成為影象座標系。

x=(int) point.x*1.0*image->width/rect.width();

y=(int)bpoint.y*1.0*image->height/rect.height();

反過程可以推出,由影象上的點到螢幕座標系中點的還原過程。

MFC座標係 精華

總結 保持x軸正向向右不變,當y軸正向向下時 dc.setviewportorg x,y 與dc.setwindoworg x,y 等價 當y軸正向向上時 dc.setviewportorg x,y 與dc.setwindoworg x,y 等價 需要強調一點,裝置原點永遠不會移動,保持在 0,0 ...

Android 座標系及轉化

一 座標系 android應用層座標系原點在左上角,座標範圍 0,0 width,height android底層座標系原點在螢幕 座標範圍 1000,1000 1000,1000 二 scale縮放 matrix3 3的矩陣結構如下 1 scale就是縮放,我們呼叫matrix的setscale ...

mfc單元格座標 設定MFC座標係

窗範圍和視口範圍符號相同,則邏輯座標的方向和視口的方向相同,即x軸向右為正,y軸向下為正。7.如果將顯示模式改為mm isotropic,那麼x軸單位和y軸單位一定相同,感興趣的讀者可以自己使一下。二 建立以視窗中心為原點的座標 用如下 void cttview ondraw cdc pdc ctt...