winfrom画图Word文件下载.docx
- 文档编号:7960218
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:8
- 大小:24.06KB
winfrom画图Word文件下载.docx
《winfrom画图Word文件下载.docx》由会员分享,可在线阅读,更多相关《winfrom画图Word文件下载.docx(8页珍藏版)》请在冰点文库上搜索。
//Render是图形大标题,图开小标题,图形宽度,图形长度,饼图的数据集和饼图的数据集要表示出来的数据
publicImageRender(stringtitle,stringsubTitle,intwidth,intheight,DataSetchartData,intDataLine)
constintSIDE_LENGTH=400;
constintPIE_DIAMETER=200;
DataTabledt=chartData.Tables[0];
//通过输入参数,取得饼图中的总基数
floatsumData=0;
foreach(DataRowdrindt.Rows)
sumData+=Convert.ToSingle(dr[DataLine]);
//产生一个image对象,并由此产生一个Graphics对象
Bitmapbm=newBitmap(width,height);
Graphicsg=Graphics.FromImage(bm);
//设置对象g的属性亚克力
g.ScaleTransform((Convert.ToSingle(width))/SIDE_LENGTH,(Convert.ToSingle(height))/SIDE_LENGTH);
g.SmoothingMode=SmoothingMode.Default;
g.TextRenderingHint=TextRenderingHint.AntiAlias;
//画布和边的设定
g.Clear(Color.White);
g.DrawRectangle(Pens.Black,0,0,SIDE_LENGTH-1,SIDE_LENGTH-1);
//画饼图标题
g.DrawString(title,newFont("
Tahoma"
14),Brushes.Black,newPointF(5,5));
//画饼图的图例
g.DrawString(subTitle,newFont("
12),Brushes.Black,newPointF(7,35));
//画饼图
floatcurAngle=0;
floattotalAngle=0;
for(inti=0;
i<
dt.Rows.Count;
i++)
curAngle=Convert.ToSingle(dt.Rows[i][DataLine])/sumData*360;
g.FillPie(newSolidBrush(ChartUtil.GetChartItemColor(i)),100,65,PIE_DIAMETER,PIE_DIAMETER,totalAngle,curAngle);
g.DrawPie(Pens.Black,100,65,PIE_DIAMETER,PIE_DIAMETER,totalAngle,curAngle);
totalAngle+=curAngle;
//画图例框及其文字
g.DrawRectangle(Pens.Black,200,300,199,99);
g.DrawString("
图表说明"
newFont("
12,FontStyle.Bold),Brushes.Black,newPointF(200,300));
//画图例各项
PointFboxOrigin=newPointF(210,330);
PointFtextOrigin=newPointF(235,326);
floatpercent=0;
{亚克力
g.FillRectangle(newSolidBrush(ChartUtil.GetChartItemColor(i)),boxOrigin.X,boxOrigin.Y,20,10);
g.DrawRectangle(Pens.Black,boxOrigin.X,boxOrigin.Y,20,10);
percent=Convert.ToSingle(dt.Rows[i][DataLine])/sumData*100;
g.DrawString(dt.Rows[i][1].ToString()+"
-"
+dt.Rows[i][0].ToString()+"
("
+percent.ToString("
0"
)+"
%)"
10),Brushes.Black,textOrigin);
boxOrigin.Y+=15;
textOrigin.Y+=15;
//回收资源
g.Dispose();
return(Image)bm;
//画条形图
publicclassBarChart
publicBarChart()
//Render是图形大标题,图开小标题,图形宽度,图形长度,饼图的数据集和饼图的数据集
publicImageRender(stringtitle,stringsubTitle,intwidth,intheight,DataSetchartData)
constintCHART_TOP=75;
constintCHART_HEIGHT=200;
constintCHART_LEFT=50;
constintCHART_WIDTH=300;
//计算最高的点
floathighPoint=0;
if(highPoint<
Convert.ToSingle(dr[0]))
highPoint=Convert.ToSingle(dr[0]);
//建立一个Graphics对象实例
try
//设置条图图形和文字属性
//设定画布和边
//画大标题
//画小标题
floatbarWidth=CHART_WIDTH/(dt.Rows.Count*2);
PointFbarOrigin=newPointF(CHART_LEFT+(barWidth/2),0);
floatbarHeight=dt.Rows.Count;
barHeight=Convert.ToSingle(dt.Rows[i][0])*200/highPoint*1;
barOrigin.Y=CHART_TOP+CHART_HEIGHT-barHeight;
g.FillRectangle(newSolidBrush(ChartUtil.GetChartItemColor(i)),barOrigin.X,barOrigin.Y,barWidth,barHeight);
barOrigin.X=barOrigin.X+(barWidth*2);
//设置边
g.DrawLine(newPen(Color.Black,2),newPoint(CHART_LEFT,CHART_TOP),newPoint(CHART_LEFT,CHART_TOP+CHART_HEIGHT));
g.DrawLine(newPen(Color.Black,2),newPoint(CHART_LEFT,CHART_TOP+CHART_HEIGHT),newPoint(CHART_LEFT+CHART_WIDTH,CHART_TOP+CHART_HEIGHT));
//画图例框和文字
g.DrawRectangle(newPen(Color.Black,1),200,300,199,99);
//画图例
+dt.Rows[i][0].ToString(),newFont("
//输出图形
returnbm;
catch
publicclassChartUtil
publicChartUtil()
publicstaticColorGetChartItemColor(intitemIndex)
ColorselectedColor;
switch(itemIndex)
case0:
selectedColor=Color.Blue;
break;
case1:
selectedColor=Color.Red;
case2:
selectedColor=Color.Yellow;
case3:
selectedColor=Color.Purple;
default:
selectedColor=Color.Green;
returnselectedColor;
以上是一个完整的WinForm中制作饼状图和柱状图源程序,大家可以通过以上程序的更改,做出能满足自己程序的需要。
画饼状图的一个简单例子(2008-05-2813:
41:
30)
C#
privatevoidCreateImage()
//获取男员工数目
intman=40;
//获取女员工数目
intwoman=60;
intSum=man+woman;
//创建画图对象
intwidth=400,height=450;
Bitmapbitmap=newBitmap(width,height);
Graphicsg=Graphics.FromImage(bitmap);
//清空背景色
Penpen1=newPen(Color.Red);
Brushbrush1=newSolidBrush(Color.YellowGreen);
Brushbrush2=newSolidBrush(Color.Blue);
Brushbrush3=newSolidBrush(Color.Brown);
Fontfont1=newFont("
CourierNew"
16,FontStyle.Bold);
Fontfont2=newFont("
8);
g.FillRectangle(brush1,0,0,width,height);
//绘制背景图
公司男女比例饼形图"
font1,brush2,newPoint(80,20));
//书写标题
intpiex=100,piey=100,piew=150,pieh=150;
//男员工在圆中分配的角度
floatangle1=Convert.ToSingle((360/Convert.ToSingle(Sum))*Convert.ToSingle(man));
//女员工在圆中分配的角度
floatangle2=Convert.ToSingle((360/Convert.ToSingle(Sum))*Convert.ToSingle(woman));
g.FillPie(brush2,piex,piey,piew,pieh,0,angle1);
//绘制男员工所占比例
g.FillPie(brush3,piex,piey,piew,pieh,angle1,angle2);
//绘制女员工所占比例
//绘制标识
g.DrawRectangle(pen1,50,300,300,100);
//绘制范围框
g.FillRectangle(brush2,90,320,20,10);
//绘制小矩形
男员工占公司总人数比例:
"
+Convert.ToSingle(man)*100/Convert.ToSingle(Sum)+"
%"
font2,brush2,120,320);
g.FillRectangle(brush3,90,360,20,10);
女员工占公司总人数比例:
+Convert.ToSingle(woman)*100/Convert.ToSingle(Sum)+"
font2,brush3,120,360);
catch(Exceptionmd)
Response.Write(md.Message);
System.IO.MemoryStreamms=newSystem.IO.MemoryStream();
bitmap.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType="
image/Gif"
;
Response.BinaryWrite(ms.ToArray());
使用ASP.NET画饼状图
2007年07月14日星期六下午11:
30
使用ASP.NET画饼状图
<
%@Page
ContentType
=
"
image/gif"
%>
%@Import
Namespace
System.Drawing"
%>
System.Drawing.Imaging"
%@ImportNamespace="
System.Drawing.Text"
script
runat="
server"
language="
C#"
>
void
Page_Load
(Object
sender,
EventArgs
e)
{
Bitmap
objBitmap;
Graphics
objGraphics;
//建立画布
objBitmap
new
Bitmap(400,
440);
objGraphics
Graphics.FromImage(objBitmap);
//填充背景
objGraphics.Clear(Color.White);
//绘制饼状图
Penp=newPen(Color.Yellow,0);
Rectanglerect=newRectangle(10,10,380,380);
objGraphics.DrawEllipse(p,rect);
//填充饼状图
Brushb1=newSolidBrush(Color.Red);
Brushb2=newSolidBrush(Color.Green);
Brushb3=newSolidBrush(Color.Blue);
objGraphics.FillPie(b1,rect,0f,120f);
objGraphics.FillPie(b2,rect,120f,120f);
objGraphics.FillPie(b3,rect,240f,120f);
//绘制文字
FontFamilyfontfml=newFontFamily(GenericFontFamilies.Serif);
Fontfont=newFont(fontfml,20);
SolidBrushbrush=newSolidBrush(Color.Blue);
objGraphics.DrawString("
ASP.NETC#绘图示例"
font,brush,50,400);
//输出并保存图象
objBitmap.Save(Response.OutputStream,
ImageFormat.Gif);
objBitmap.Save(Server.MapPath("
x.jpg"
),
ImageFormat.Jpeg);
//结束绘制
objBitmap.Dispose();
objGraphics.Dispose();
}
/script>
html>
headrunat="
<
title>
无标题页<
/title>
/head>
body>
formid="
form1"
div>
/div>
/form>
/body>
/html>
运行结果如下所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- winfrom 画图