假定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...