1. 程式人生 > >簡單談視口座標和視窗座標?

簡單談視口座標和視窗座標?

視口和視窗座標在GDI中是有這個概念的,正常情況下,這兩個座標一致,即它們的原點和寬高都是相同的,但是我們可以修改這兩個座標系統來簡單快速實現一些變換操作,如縮放等,首先就必須要理解這兩個座標的概念了,簡答說一句話,即:視口座標(物理座標)的高度寬度是確定顯示區域的,而視窗座標(邏輯座標)是為顯示區域刻度尺寸的,所以縮放操作可以通過擴大視口區域的方法來實現。就這麼簡答的記憶,千萬不要混淆。

//下面貼一段縮放的程式碼供大家參考

var
  sz: TSize;
  pt: TPoint;
begin
 //
  SetMapMode(Self.Canvas.Handle, MM_ISOTROPIC);        //  MM_ANISOTROPIC

//修改視窗的寬度和高度,即邏輯座標的寬高
  SetWindowExtEx(Canvas.Handle, ClientWidth, ClientHeight, nil);

//修改視口的寬度和高度,即物理座標的寬高

//suofang為縮放因子,浮點數

  SetViewportExtEx(Self.Canvas.Handle, trunc(ClientWidth * suofang) , trunc( Clie//ntHeight * suofang), @sz);

 Canvas.Ellipse(0,0, ClientWidth, ClientHeight);
  Canvas.TextOut(0,0, 'HELLO world');

相關推薦

簡單座標視窗座標

視口和視窗座標在GDI中是有這個概念的,正常情況下,這兩個座標一致,即它們的原點和寬高都是相同的,但是我們可以修改這兩個座標系統來簡單快速實現一些變換操作,如縮放等,首先就必須要理解這兩個座標的概念了,簡答說一句話,即:視口座標(物理座標)的高度寬度是確定顯示區域的,而視窗座

滑鼠事件座標獲取(視窗座標螢幕座標)

本文主要介紹重寫自帶的一些方法,拾取螢幕和視窗座標資訊 效果如下: 分析: 定時服務:在固定一段時間後執行相關的函式方法,例如這裡表示的是在0秒後執行self.giveHelp這個方法 QTimer.singleShot(0, s

簡單的頂點著色(根據模型座標世界座標位置)

Shader "Custom/test1" { SubShader { pass { CGPROGRAM #pr

Altium怎麼匯出座標利用座標快速佈局教程

器件的座標其實在我們處理佈局的時候,非常有用,例如A板佈局匯入B板。 在A板PCB中執行選單命令“File-Assembly-Generates Pick and Place File”對器件的座標進行匯出。如圖31所示,注意選擇選擇匯出格式和單位。 B板PCB中把所

UE4_第一人稱模版引發的世界座標區域性座標的思考

由第一人稱射擊模板引發的思考: 添加了一個子彈的發射位置Scene,這時候區域性座標的x軸和世界座標的x軸不在同一個方向,產生射線的時候 即便使用如下的節點,產生的射線的forwardVector也是以區域性座標系的x軸為準。 由此就導致了所謂的bug。 (下圖演示了局部座標系和世界

邏輯座標裝置座標的區別

如果我們想製作一個擁有滾動條的應用程式,那就只需要讓你的view類派生自CScrollView類即可,CScrollView類派生自CView類!在初始化view的時候,函式會呼叫CXXView類的OnInitialUpdate()函式(XX表示你的工程名)!函式如下:vo

邏輯座標與裝置座標——全視窗座標、螢幕座標、客戶區座標的總結

Windows應用程式繪製圖形時使用的是一種邏輯單位,每個邏輯單位的大小由對映模式決定,這個邏輯單位既可以與裝置單位(螢幕或印表機上的一個畫素點)相同,也可以是一種物理單位(如毫米),還可以是使用者自定義的一種單位。在Windows應用程式中,只要與輸出有關係,都要使用對映

PIE SDK螢幕座標地圖座標轉換

  1. 功能簡介     螢幕座標和地圖座標轉換,就是字面意思,將電腦螢幕的座標轉換為帶有空間資訊的地圖座標,主要運用PIE SDK地圖控制元件的ToMapPoint()方法,而地圖座標轉換為裝置座標(螢幕),用的是FromMapPoint()方法。 2.功能實現說明

MFC中關於裝置(螢幕)座標邏輯座標

裝置座標(Device Coordinate)又稱為物理座標(Physical Coordinate),是指輸出裝置上的座標。通常將螢幕上的裝置座標稱為螢幕座標。裝置座標用物件距離視窗左上角的水平距離和垂直距離來指定物件的位置,是以畫素為單位來表示的,裝置座標的X軸向右為正

地理座標投影座標 你必須知道的地理座標系投影座標系

原 你必須知道的地理座標系和投影座標系 置頂 2017年03月24日 17:34:21 ConardLi 閱讀數:32428

HTML 滑鼠座標元素座標

在這一篇文章中,將會介紹滑鼠座標、元素座標以及滑鼠在指定元素內的座標。 1. 滑鼠座標 在觸發滑鼠相關事件時(如:click、mousemove),可以通過事件物件獲取當前滑鼠的座標。 獲取的座標可分為2種: 1) MouseEvent.screenX、MouseEvent.screenY :基於

html5 canvas學習--移動座標旋轉座標

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascr

GDAL python讀取shp進行影像投影座標地理座標的轉換

之前只在網上找到了使用gdal進行tif格式影像的投影座標與地理座標轉換的程式碼,但沒有專門針對shp格式的資料的教程。正巧現在需要用mongodb做向量入庫,建立空間索引(2dshere)時必須用經緯度而不是投影座標,就參考別人的程式碼做了一些修改,實現了sh

根據excellent 自動生成table ,通過輸入開始座標結束座標

自動生成excell的 position 使用場景 使用頁面生成,excell大量單元格,成千上百的量。如果量小就沒必要使用。 要做Excell的table,而且要顯示值,通過給td標籤,新增一個pos

Qt全域性座標相對座標

QMouseEvent中兩類座標系統,一類是視窗座標,一類是顯示器座標。1、QPoint QMouseEvent::pos()       這個只是返回相對這個widget(過載了QMouseEvent的widget)的位置。       const Returns the position of the m

地圖座標頁面座標的轉換應用

 private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)         {             IActiveView m_activev

unity中世界座標絕對座標之間的轉換

public class TEST : MonoBehaviour { void Start () { Debug.Log(transform.position); } // Update is called o

地理座標投影座標轉換程式,基於ArcGIS Engine

通常需要將經緯度座標與投影座標相互轉換,下面是一些原始碼,在ArcEngine中實現。 投影轉經緯度 private IPoint PRJtoGCS(double x, double y)           {             IPoint pPoint

關於Arcgis投影座標地理座標問題總結

作為一個八年的gis老鐵,不敢說自己的gis有多麼厲害,但是每次一到地理投影和什麼座標投影就各種頭疼,最近又遇到這個問題,下定決心搞明白。地理座標就是我們經常說的經緯度座標,具體的地理位置。而投影座標則是將地球怎麼切開投影到平面上的問題。這其中大家經常混淆的就是定義投影和柵格

C# UTM座標WGS84座標轉換小工具

工具根據:http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html js程式碼改編 工具原始碼github:https://github.com/JeroLong/TUMAndWGS84TransTool.git 效果: 主要程式碼