国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用AspImage制作圖形(一)

2019-11-18 20:42:25
字體:
來源:轉載
供稿:網友
/*
豆腐制作,都是精品
http://www.asp888.net 豆腐技術站
如轉載,請保留完整版權信息
*/

很久沒有給大家帶來新的文章了,最近豆腐忙于公司的業務,怠慢了各位朋友,在這里給大家先說一聲
對不起了,沒有辦法,豆腐也要生活呀。
aspImage是serverobjects站點上非常好的一個組件,它可以使我們利用Asp實現很多對于圖形的處理功能。
比如,豆腐在最近的項目中就需要對 費用進行統計,要畫 柱圖,餅圖,等等,都需要用到這個組件。
這個組件本身沒有內置柱圖的功能,我們需要自己做這樣的函數,還是老規矩,我們先來看看代碼吧。
Function DrawPillar(arrNum)
'這個函數的功能是 生成 一個 柱圖
'**************以下是變量定義********************
dim arrColor(13)
dim arrNum1()
dim i
dim intX
dim intY
'--------------以下是代碼開始--------------------
i=0
arrColor(i)=RGB(255,255,255)
i=i+1
arrColor(i)=RGB(255,255,0)
i=i+1
arrColor(i)=RGB(255,0,255)
i=i+1
arrColor(i)=RGB(0,255,255)
i=i+1
arrColor(i)=RGB(255,0,0)
i=i+1
arrColor(i)=RGB(0,255,0)
i=i+1
arrColor(i)=RGB(0,0,255)
i=i+1
arrColor(i)=RGB(255,255,255)
i=i+1
arrColor(i)=RGB(255,255,0)
i=i+1
arrColor(i)=RGB(255,0,255)
i=i+1
arrColor(i)=RGB(0,255,255)
i=i+1
arrColor(i)=RGB(255,0,0)
i=i+1
arrColor(i)=RGB(0,255,0)
i=i+1
arrColor(i)=RGB(0,0,255)
i=i+1

intMax=GetMaxY(arrNum)

Set Image = Server.CreateObject("AspImage.Image")
Image.MaxX=620
Image.MaxY=300

intRatio=(Image.MaxY-40)/intMax

Image.GradientTwoWay rgb(41,137,204),vbWhite ,0,1


'Image.BackgroundColor =vbBlue
'Image.FrameRect 15,15,Image.MaxX -15,Image.MaxY -15

'Y 軸
Image.X =40+2
Image.Y =15
Image.LineTo 40+2,Image.MaxY-20
Image.TextOut "↑",40-5,14,false
Image.TextOut "單位:元",15,0,false
for i=1 to 10
Image.TextOut "-" ,40,((Image.MaxY-40)/10)*i,false
'Image.TextOut cDBL((intMax/10))*(i),0,((Image.MaxY-40)/10)*(11-i),false
next

'X軸
Image.X =Image.MaxX-15
Image.Y =Image.MaxY-20
Image.LineTo 40,Image.MaxY-20

Image.TextOut ">",Image.MaxX-15-4 ,Image.MaxY-20-9,false
for i=1 to 12
Image.TextOut i & "月" ,40+ i * (30+15) -20 ,Image.MaxY-20,false
next

if intMax=0 then
intMax=1
end if

'一年有12個月,產生 12個 顏色
intX=40

for i=0 to 11
Image.BackgroundColor = arrColor(i)
Image.Rectangle intX+20,Image.MaxY -20 , intX+50, Image.MaxY -20 - arrNum(i)*intRatio
Image.TextOut arrNum(i),intX+20, Image.MaxY -32 - arrNum(i)*intRatio , false
intX=intX+ 30 +15
next
Image.FileName=server.MapPath("test.jpg")
Image.SaveImage

set Image=nothing
Response.Write "<img src=test.jpg>"
End Function

function GetMaxY(arrNum)
'這個函數的功能是 得到數組中最大 的數字
'***************以下是變量定義************
dim i
dim intMax '寄存器
'---------------以下是代碼開始------------
intMax=0
for i=0 to UBOUND(arrNum)
if cDbl(intMax)< cDBL(arrNum(i)) then
intMax=arrNum(i)
end if
Next

GetMaxY=intMax
End Function

我們通過代碼Set Image = Server.CreateObject("AspImage.Image")得到一個AspImage的實例,現在
我們就可以利用AspImage提供給我們的動人功能了。
Image.MaxX=620
Image.MaxY=300
我們可以設定我們需要畫的圖形的區域。
Image.GradientTwoWay rgb(41,137,204),vbWhite ,0,1
這是一個非常非常好的方法,我們可以給這個圖片的背靜添加一個漸進填充的顏色。

'Y 軸
Image.X =40+2
Image.Y =15
Image.LineTo 40+2,Image.MaxY-20
Image.TextOut "↑",40-5,14,false
Image.TextOut "單位:元",15,0,false
for i=1 to 10
Image.TextOut "-" ,40,((Image.MaxY-40)/10)*i,false
next

這段代碼是一個畫 Y 軸的代碼,不要小看這個"↑",豆腐花了很長的時間才搞定的。:)
'X軸
Image.X =Image.MaxX-15
Image.Y =Image.MaxY-20
Image.LineTo 40,Image.MaxY-20

Image.TextOut ">",Image.MaxX-15-4 ,Image.MaxY-20-9,false
X軸相對來說就簡單多了。

'一年有12個月,產生 12個 顏色
intX=40

for i=0 to 11
Image.BackgroundColor = arrColor(i)
Image.Rectangle intX+20,Image.MaxY -20 , intX+50, Image.MaxY -20 - arrNum(i)*intRatio
Image.TextOut arrNum(i),intX+20, Image.MaxY -32 - arrNum(i)*intRatio , false
intX=intX+ 30 +15
next
這端代碼是最終生成柱圖的代碼,具體我就不解釋了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆回县| 商城县| 灵山县| 襄城县| 德江县| 杭锦后旗| 福海县| 泸州市| 大兴区| 郎溪县| 扶风县| 嘉义县| 阜城县| 安岳县| 汉阴县| 江城| 西乌珠穆沁旗| 兴国县| 高阳县| 黔西| 临邑县| 增城市| 徐闻县| 洛浦县| 临颍县| 荥经县| 游戏| 临高县| 平南县| 桂东县| 丁青县| 昭觉县| 竹北市| 舟山市| 商河县| 离岛区| 常德市| 武邑县| 武邑县| 稷山县| 屏南县|