最近單位的圖表需求,而一般的控件是實現不了的,只好用GDI畫了2個,非常喫力。發覺ASP。NET的GDI畫圖的確比較簡單,發一些心得讓大家減少彎路。。
圖片的座標在左上方默認爲(0,0),而實際的座標肯定不是這樣,所以這裏就用到相對座標來實現。
Pen myPenY = new Pen(Color.Red, 1);
System.Drawing.Image objImage = System.Drawing.Image.FromFile(Server.MapPath("../oilmap/solid.gif"));
Bitmap objBmp = new Bitmap(objImage);
Graphics objT = Graphics.FromImage(objBmp);
objT.TranslateTransform(122,310);//原點位置
objT.DrawLine(myPenY,0,0,20,20); //畫簡單的線條
objBmp.Save(Response.OutputStream,ImageFormat.Gif); //輸出圖片
經過一些計算,得出這兩個圖片:
1。大衛三角圖
2。立體圖
立體圖最早的需求是很不規則的,它的Y軸和水平方向有一定角度,Z軸也是視覺座標,如果要做到預定的圖表就要經過很多換算(估算),這樣導致畫出來的圖片誤差很大,所以最後還是把圖片調整了,把Y軸畫成和水平平行,只對X軸進行視覺座標轉換。這樣畫出來的圖纔算比較準確。因爲這個圖僅僅只是看大概的意圖就可以的,所以這樣的畫法也是滿足需求的。
以一個圖片爲背景圖,並且這上面畫座標的實現方式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.