坐標空間

Microsoft Windows下的程式運用坐標空間和轉換來對圖形輸出進行縮放、旋轉、平移、斜切和反射。

基本介紹

  • 中文名:坐標空間
  • 外文名:Microsoft Windows
  • 釋義:坐標空間和轉換
  • 作用:旋轉、平移、斜切和反射
  • 拼音:zuobiaokongjian
簡介,VC中的坐標空間,轉換,默認轉換,邏輯坐標和設備坐標,

簡介

坐標空間
zuòbiāo kōngjiān
[coordinate space] 通常意義下三維幾何空間的名稱,以區別於各種符號相空間

VC中的坐標空間

一個坐標空間是一個平面的空間,通過使用兩個相互垂直並且長度相等的軸來定位二維對象。Win32應用程式設計接口(API)使用四種坐標空間:世界坐標系空間、頁面空間、設備空間、和物理設備空間。應用程式運用世界坐標系空間對圖形輸出進行旋轉、斜切或者反射。
Win32 API把世界坐標系空間和頁面空間稱為邏輯空間;最後一種坐標空間(即物理設備空間)通常指應用程式視窗的客戶區;但是它也包括整個桌面、完整的視窗(包括框架、標題欄選單欄)或印表機的一頁或繪圖儀的一頁紙。物理設備的尺寸隨顯示器、印表機或繪圖儀所設定的尺寸而變化。

轉換

如要在物理設備上繪製輸出,Windows把一個矩形區域從一個坐標空間拷貝到(或映射到)另一個坐標空間,直至最終完整的輸出呈現在物理設備上(通常是螢幕或印表機) 。
如果該應用程式調用了SetWorldTransform函式,那么映射就從應用程式的世界坐標系空間開始;否則,映射在頁面空間中進行。在Windows把矩形區域的每一點從一個空間拷貝到另一個空間時,它採用了一種被稱作轉換的算法,轉換是把對象從一個坐標空間拷貝到另一個坐標空間時改變(或轉變)這一對象的大小、方位、和形態,儘管轉換把對象看成一個整體,但它也作用於對象中的每一點或每條線。
頁面空間到設備空間的轉換
頁面空間到設備空間的轉換是原Windows接口的一部分。這種轉換確定與一特定設備描述表相關的所有圖形輸出的映射方式。
所謂映射方式是指確定用於繪圖操作的單位大小的一種量度轉換。映射方式是一種影響幾乎任何客戶區繪圖的設備環境屬性。另外還有四種設備環境屬性:視窗原點、視口原點、視窗範圍和視口範圍,這四種屬性與映射方式密切相關。
頁面空間到設備空間的轉換
頁面空間到設備空間的轉換所用的是兩個矩形的寬與高的比率,其中頁面空間中的矩形被稱為視窗,設備空間中的矩形被稱為視口,Windows把視窗原點映射到視口原點,把視窗範圍映射到視口範圍,就完成了這種轉換。

默認轉換

一旦應用程式建立了設備描述表,並立即開始調用GDI繪圖或輸出函式,則運用默認頁面空間到設備空間的轉換和設備空間到客戶區的轉換(在應用程式調用SetWorldTransform函式之前,不會出現世界坐標空間到頁面空間的轉換)。
默認頁面空間到設備空間的轉換結果是一對一的映射;即頁面空間上給出的一點映射到設備空間的一個點。正如前文講到的,這種轉換沒有以矩陣指定,而是通過把視口寬除以視窗寬,把視口高除以視窗高而得出的。在默認的情況下,視口尺寸為1x1個象素,視窗尺寸為1x1頁單位。
設備空間到物理設備(客戶區、桌面或印表機)的轉換結果總是一對一的;即設備空間的一個單位總是與客戶區、桌面、或印表機上的一個單位相對應。這一轉換的唯一用途是平移。無論視窗移到桌面的什麼位置,它永遠確保輸出能夠正確無誤地出現在視窗上。
默認轉換的一個獨特之處是設備空間和應用程式視窗的y軸方向。在默認的狀態下,y軸正向朝下,負y方向朝上。

邏輯坐標和設備坐標

幾乎在所有的GDI函式中使用的坐標值都是採用的邏輯單位。Windows必須將邏輯單位轉換為“設備單位”,即像素。這種轉換是由映射方式、視窗和視口的原點以及視窗和視口的範圍所控制的。
Windows對所有的訊息(如WM_SIZE、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUP),所有的非GDI函式和一些GDI函式(例如GetDeviceCaps函式),永遠使用設備坐標。
“視窗”是基於邏輯坐標的,邏輯坐標可以是象素、毫米、英寸等單位;“視口”是基於設備坐標(象素)的。通常,視口和客戶區是相同的。
預設的映射模式為MM_TEXT。在這種映射模式下,邏輯單位和設備單位相同。

相關詞條

熱門詞條

聯絡我們