Windows坐标系统
生活随笔
收集整理的這篇文章主要介紹了
Windows坐标系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 坐標映射方式是設備環境中的一個重要屬性,默認值為MM_TEXT,即左上角為原點,右方為x軸正方向,下方為y軸正方向,這種坐標系使用的單位是像素,其好處是窗口中的每一點的坐標不會因為窗口大小而改變。
| 映射方法 | 邏輯單位 | x和y軸方向 |
| MM_TEXT(默認方式) | 像素 | x右,y下 |
| MM_LOMETRIC | 0.1mm | x右,y上 |
| MM_HIMETRIC | 0.01mm | x右,y上 |
| MM_LOENGLISH | 0.01英寸 | x右,y上 |
| MM_HIENGLISH | 0.001英寸 | x右,y上 |
| MM_TWIPS | 1/1440英寸 | x右,y上 |
| MM_IOSTROPIC | 用戶自定義(X=Y) | 用戶自定義 |
| MM_ANISOTROPIC | 用戶自定義(X!=Y) | 用戶自定義 |
- 需用到函數
- int SetMapMode(HDC hdc,int fnMapMode);改變坐標映射方式;
- BOOL SetWindowExEx(HDC hdc,int nXExtent,int nYExtent,LPSIZE lpsize);不管真實區域大小,這個函數將此區域的邏輯寬度為nExtent,邏輯高度為nYExetent,系統會將DC指定的區域寬度做nXExtent等分,高度做nYExtent等分,等到單位長度。
- BOOL ?SetViewportExEx(HDC hdc,int nXExtent,int nYExtent,LPSIZE lpsize),設置邏輯單位后,用此函數設置x,y軸的方向和坐標系包含范圍,即定義域和值域。nXExtent和nYExtent正負指示了坐標系的方向。
- BOOL SetViewportOrgEx(HDC hdc,int x,int y ,LPPOINT lpoint);設置坐標的原點坐標位置。
- 用例:笛卡爾坐標系設置函數編寫
void SetIostropic(HDC hdc,int x,int y)
{
? ? ? ::SetMapMode(hdc,MM_IOSTROPIC); ? ?設置映射模式為用戶自定義模式(X=Y)
? ? ::SetWindowExtEX(hdc,100,100,NULL);設置邏輯寬度和高度
? ? ::SetViewportExtEx(hdc,x.-y,NULL);設置值域定義域,并指示坐標軸方向
? ? ::SetViewportOrgEx(hdc,x/2,y/2,NULL);設置原定坐標
}
?
總結
以上是生活随笔為你收集整理的Windows坐标系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python-scrapy爬虫框架
- 下一篇: 【操作系统复习】中断和异常