再談Windows座標變換

2021-06-19 07:21:13 字數 1867 閱讀 5604

一 、 mm_text對映模式下:

這是預設的對映模式,相對容易理解,裝置座標系和邏輯座標系的y軸都是向下增加。

二 、mm_loenglish , mm_lometric , mm_hienglish , mm_himetric ,          mm_twips對映模式下:

裝置座標系的y軸向下增加,邏輯座標系y軸向上增加。

setviewportorgex()使用的是裝置座標系中的點。

setwindoworgex()使用的是邏輯座標系中的點。

我們現在建立乙個座標系,(0 , 0)點在客戶區中心,y軸向上, x軸向右:

方法一:

setviewportorgex(hdc , cxclient / 2 , cyclient / 2 , null);

方法二:

pt.x = cxclient ;

pt.y = cyclient ;

dptolp(hdc , &pt , 1) ;//經轉換後pt.y 是負值

setwindoworgex(hdc , -pt.x /2 , -pt.y / 2 , null) ;

通過這兩段程式驗證了裝置座標系的y軸方向向下,邏輯座標系的y軸方向向上

三 、 mm_isotropic與mm_anisotropic對映模式下:

裝置座標系的y軸向下增加,

對於邏輯座標系:

1. 當第一次設定對映模式為mm_isotropic時 , window使用與mm_lometric對映模式相同的視窗和範圍 ,y軸向上。 如:

setmapmode(hdc , mm_isotropic) ;

setviewportorgex(hdc , cxclient / 2 , cyclient / 2 , null) ;

movetoex(hdc , 0 , 0 , null) ;

lineto(hdc , 100 , 100) ;

建立乙個(0 , 0)點在客戶區中心 , y軸向上,x軸向右的座標系,並畫一條直線證明x,y軸方向。

2. 當第一次設定對映模式為mm_anisotropic時,它繼承前面設定的對映範圍模式

y軸方向有前對映模式決定。如:

setmapmode(hdc , mm_anisotropic) ;

setviewportorgex(hdc , cxclient / 2 , cyclient / 2 , null) ;

movetoex(hdc , 0 , 0 , null) ;

lineto(hdc , 100 , 100) ;

此時前對映模式為mm_text(因其為預設值),建立乙個(0 , 0)點在客戶區中心y軸方向向下 , x軸向右 ,並畫一條直線證明x, y軸方向。

setmapmode(hdc , mm_hienglish) ;

setmapmode(hdc , mm_anisotropic) ;

setviewportorgex(hdc , cxclient / 2 , cyclient / 2 , null) ;

movetoex(hdc , 0 , 0 , null) ;

lineto(hdc , 100 , 100) ;

在前對映模式為mm_hienglish下, 建立乙個(0 , 0)點在客戶區中心y軸方向向上,x軸方向向右的座標系,並畫一條直線證明x, y軸方向。

總結:

1.裝置座標系的y軸方向始終向下增加。 2.

在mm_isotropic和mm_anisotropic模式下我們可以用setviewportextex()和setwindowextex()設定座標範圍同時還可以改變y軸方向。

3.在預設模式mm_text下裝置座標範圍和邏輯座標範圍是1:1因此可以假設是相同使用但是在其他模式下需要用dptolp()或lptodp()轉換。

eigen座標變換 座標變換

位姿變換 位姿在不同座標系中變換,更常用 posest or t,關鍵在於同乙個位姿 實際位姿固定不變 但是在不同座標系有不同的 表 示!座標系變換 座標系本身變換 並且 coordst coordst t.inverse 注意 ros tf 發布的變換是座標系變換 coordst,包括通過 tf2...

座標系變換與座標變換理解

在slam中經常用到空間點的座標變換。假設已獲得相機某一位置的位姿pose,pose包括相機座標系相對於世界座標系的旋轉r和平移t,此時若已知某點p在相機座標系下的座標為pc,計算點p在世界座標系下的座標pw,可使用 pw r pc t t pc 開始的時候我有這樣的疑問 t表示世界座標到相機座標系...

再談ArcGIS座標系統

要明確兩個概念 geographic coordinate system和projected coordinate system的區別。1 首先理解geographic coordinate system,geographic coordinate system直譯為地理座標系統,是以經緯度為地圖的...