|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。后面我们讲了怎样使用AspImage来制造柱图,柱图还好办,最少有关于长方形的函数,我们能够来
借用,可是假如是,饼图怎样办?
有的伴侣不是说了,AspImage上不是有Pie的函数吗?是呀,它是有,可是它的谁人也太难用了。
豆腐没有举措,经由同事的匡助,使用我们高中进修的三角形公式(三角形公式?有无弄错?)
终究做出了如许的函数,并且利用起来十分的便利。人人请看
FunctionDrawPie(ArrNum,arrText)
函数功效:依据指定的数值和显现,他们均是数组
**********以下是变量界说**************************
dimintTotal以后
dimi
dimintSettledAngle
dimarrColor(6)
----------以下是代码入手下手--------------------------
设置色彩
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
以下入手下手对数据举行处置
起首失掉数目的总数
intTotal=0
fori=0toUBOUND(ArrNum)
intTotal=intTotal+ArrNum(i)
Next
SetImage=Server.CreateObject("AspImage.Image")
设定图像的地区巨细
Image.MaxX=300
Image.MaxY=300
天生渐进色
Image.GradientTwoWayrgb(41,137,204),vbWhite,0,1
处置角度
intSettledAngle=0
intRectStart=0
fori=0toubound(ArrNum)
intAngle=(arrNum(i)/intTotal)*360
一个一个的画扇区,终极分解一个完全的圆
setImage=DrawSinglePie(Image,360-intSettledAngle,arrColor(i))
在图像的最下方对图像内容举行形貌
Image.BackgroundColor=arrColor(i)
Image.RectangleintRectStart+10*(i+1),250,intRectStart+10*(i+1)+10,260
Image.TextOutarrText(i),intRectStart+10*(i+1)+10,245,false
在图像的最下方对图像内容举行形貌
Image.BackgroundColor=arrColor(i)
Image.RectangleintRectStart+10*(i+1),270,intRectStart+10*(i+1)+10,280
Image.TextOutcstr(intAngle)&"%",intRectStart+10*(i+1)+10,265,false
intRectStart=intRectStart+50
intSettledAngle=intSettledAngle+intAngle
next
Image.FileName=server.MapPath("http://edu.cnzz.cn/NewsInfo/test.jpg")
Image.SaveImage
setImage=nothing
Response.Write"<imgsrc=http://edu.cnzz.cn/NewsInfo/test.jpg>"
EndFunction
functionDrawSinglePie(Image,intAngle,intColor)
函数功效:依据指定的角度和色彩画一个矩形
**************以下是变量界说********************
constpi=3.1415926圆周率
dimpii经由180角转换后的圆周,弧度
dimx1,x2,x3,x44个X坐标
dimy1,y2,y3,y44个Y坐标
dimintR圆的半径,这个半径不是真实的圆的半径,可是能够用来流动圆心的地位
--------------以下是代码入手下手--------------------
**********************************
*
*(x1,y1),(x2,y2)和圆心必需在经由过程(0,0)的斜角45的直线上
***********************************
pii=pi/180
ifintAngle>360then
intAngle=intAngle-360
endif
x1=10
y2=10
x2=250
y2=250
intR=(x1+x2)/2
************************************
*
*以下使用三角形公式失掉响应Point的坐标
************************************
ifintAngle<135then
角度不敷135
angle=intAngle*pii
x3=tan(angle-45*pii)*intR+intR
y3=0
x4=0
y4=0
elseifintAngle=135then
x3=(intR)*2
y3=intR
x4=0
y4=0
elseifintAngle<315then
angle=intAngle*pii
intTemp=(intR/tan(angle-135*pii))-intR
x3=250+intTemp
y3=250
x4=0
y4=0
elseifintAngle=315then
x3=(-intR)*2
y3=intR
x4=0
y4=0
else
angle=intAngle*pii
x3=tan(angle-45*pii)*intR+intR
y3=0
x4=0
y4=0
endif
Image.BackgroundColor=intColor
Image.Piex1,y1,x2,y2,x3,y3,x4,y4
Image.TextOut360-intAngle,(125+x3)/2+20,(125+y3)/2+20,false
Image.TextOutintRatio,intPosX,intPosY,false
setDrawSinglePie=Image
endfunction
最初我们在使用drawPie中传送要显现的数据的数组就能够了。减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 |
|