c语言确定原点建立坐标系,在GDI+中如何实现以左下角为原点的笛卡尔坐标系
今天寫了一個求點集合的凸包的一個算法,雖然結果求解出來了,但是想將過程用GDI+繪制出來,就需要將點繪制出來,然而c#GDI+中繪圖的坐標與我們常用數學中笛卡爾坐標系是不一樣的,所以就要轉換GDI+中的坐標,通過以下的代碼的就能夠實現坐標系的轉換,代碼如下所示:
//將GDI+中原始的坐標原點平移
g.TranslateTransform(0f, this.Height);
//變換x,y軸的正方向
g.ScaleTransform(1f, -1f);
ps:c#gdi+的坐標以區域的左上角為原點,往下為Y正方向,往右為X正方向。
ok,這樣就搞定了。
注意:
雖然這樣能夠將GDI+的坐標變為笛卡爾坐標系,但是Y軸的坐標刻度有點差別。我也不知道為什么。我用50,50為原點,100,100繪制一個矩形。但繪制出來后矩形的左下角距畫布左邊的距離和下邊的距離不一樣長,有點小偏差,其他的還好。我猜想可能是在上述代碼將坐標原點平移的時候有點小問題,this.Height和GDI+的坐標的單位不一樣吧。GDI+中的坐標是用默認用像素為單位,可能控件的高度和寬度所用的單位是用比像素更小的單位吧。所以在g.TranslateTransform(0f,this.Height)中并未實現將坐標移到左下角去,因為單位的不統一造成的。
但是我現在也不知道控件大小的單位是什么,也不知道他們之間如何轉換,也沒找到相關的資料,希望哪位高手知道能夠告知。自己也會進一步的研究,若有結果,會及時分享的。
GDI+中發生一般性錯誤的解決辦法(轉帖)
今天在開發.net引用程序中,需要System.Drawing.Image.Save 創建圖片,debug的時候程序一切正常,可是發布到IIS后缺提示出現“GDI+中發生一般性錯誤”的異常.于是開始“ ...
GDI+中GIF圖片的顯示
某位網友曾經問過我GDI+中Gif圖像顯示的問題,一直沒時間給你寫,在此致歉.我把這篇文章送給他. 一.GIF格式介紹 1.概述 GIF(Graphics Interchange Format,圖形交 ...
GDI+ 中發生一般性錯誤。
GDI+ 中發生一般性錯誤. “/wechat”應用程序中的服務器錯誤. GDI+ 中發生一般性錯誤. 說明: 執行當前 Web 請求期間,出現未經處理的異常.請檢查堆棧跟蹤信息,以了解有關該錯誤以及 ...
[轉載]GDI+中發生一般性錯誤
注:第一次寫博客,把自己遇到的問題和收集的資料記錄在博客上.在開發.NET應用中,使用 System.Drawing.Image.Save 方法而導致“GDI+ 中發生一般性錯誤”的發生,通常有以下三 ...
GDI+中發生一般性錯誤(轉載)
在開發.NET應用中,使用 System.Drawing.Image.Save 方法而導致“GDI+ 中發生一般性錯誤”的發生,通常有以下三種原因:1. 相應的帳戶沒有寫權限.解決方法:賦予 NETW ...
GDI+ 中發生一般性錯誤(在 OutputStream 中保存 PNG 格式圖像時遇到的問題)
在將圖片以 PNG 格式保存至 Response.OutputStream 時,會碰到如下錯誤: GDI+ 中發生一般性錯誤. 原因: 在寫 PNG 格式的圖像時,指針需要在存儲的位置來回移動.而 R ...
【轉】GDI+中發生一般性錯誤的解決辦法
今天在開發.net引用程序中,需要System.Drawing.Image.Save 創建圖片,debug的時候程序一切正常,可是發布到IIS后缺提示出現“GDI+中發生一般性錯誤”的異常. 于是開始 ...
GDI+中發生一般性錯誤的解決辦法(轉)
今天在開發.net引用程序中,需要System.Drawing.Image.Save 創建圖片,debug的時候程序一切正常,可是發布到IIS后缺提示出現"GDI+中發生一般性錯誤" ...
Image.Save()發生“GDI+ 中發生一般性錯誤”
從數據庫中讀取的圖片是byte[]類型,將其轉換成Image可以正常顯示,但是調用image.Save()時會發生“GDI+?中發生一般性錯誤”.public?static?System.Drawin ...
隨機推薦
c# WebClient Get Post 方法
public string GetData(string url) { string data; using (var client = new WebClient()) { using (var s ...
5.首次登陸與在線求助man page
X Window與命令行模式的切換:通常我們也稱命令行模式為終端界面(terminal或console),linux默認的情況下會提供6個Terminal來讓用戶登錄,切換的方式為使用[Ctrl]+[ ...
iOS開發多線程篇—線程間的通信
iOS開發多線程篇—線程間的通信 一.簡單說明 線程間通信:在1個進程中,線程往往不是孤立存在的,多個線程之間需要經常進行通信 線程間通信的體現 1個線程傳遞數據給另1個線程 在1個線程中執行完特定任 ...
widnow.open
http://blog.csdn.net/chenyanggo/article/details/7443051
IE6和IE8細節問題
1.對于使用jQuery的ajax.IE6要求使用帶有全部的屬性:例如IE對下面代碼中type:"POST",有嚴格的要求,如果沒有該屬性,則無法向后他發送請求 $.ajax({ ...
cocos2d-x CCArray
轉自:http://blog.csdn.net/onerain88/article/details/8164210 1. CCArray只是提供了一個面向對象的封裝類 其繼承于CCObject類(CC ...
中國海洋大學第四屆朗訊杯高級組 Cash Cow(模擬)
題目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721 題意:?給定n個左標,跟那n個坐標 ...
MFC 堆棧溢出 test dword ptr [eax],eax ; probe page.
今天調試程序的時候,發現一個奇怪的問題,之前調試都沒問題的,今早加了一點東西,就出現錯誤,跳到調試位置,如下4行紅色部分 ; Find next lower page and probe cs20: ...
SINGLETON(單例模式)---(孤獨的人)
很多時候,我們都很彷徨,因為,在身邊的朋友,很少. package patterns.createable.singleton; /** * 孤獨的人啊 * 我為你寫了一個類 * 這個類,在我們的程序 ...
Le Chapitre VIII
J'appris bien vite à mieux conna?tre cette fleur. Il y avait toujours eu, sur la planète du petit pr ...
總結
以上是生活随笔為你收集整理的c语言确定原点建立坐标系,在GDI+中如何实现以左下角为原点的笛卡尔坐标系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java:从左至右显示“12345678
- 下一篇: 查看网络交换机光口的光功率