RT,比如说用连线指示来标志,或者直接在饼图相应部位标志
这是我的代码,已完成圆饼绘制
请教高人指教 for (int i = 0; i < arrValues.Length; i++) //绘制柱状图
{
objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 35) + 15, 400 - arrValues[i]*5, 25,
arrValues[i]*5);
objGraphics.DrawRectangle(Pens.Black, (i * 35) + 15, 400 - arrValues[i]*5, 25, arrValues[i]*5);
objGraphics.DrawString(arrValueNames[i].ToString() + "["+ arrValues[i].ToString()+"]", new Font("黑体", 15), Brushes.Black,(i * 35) + 15,170 - arrValues[i], drawFormat);
}
objGraphics.FillRectangle(new SolidBrush(GetColor(6)), (6 * 35) + 15, 400 - total*5, 25,
total*5);
objGraphics.DrawRectangle(Pens.Black, (6 * 35) + 15, 400 - total*5, 25, total*5);
objGraphics.DrawString("考试总人数" + "["+ total+"]", new Font("黑体", 15), Brushes.Black,(6 * 35) + 15,170 - total, drawFormat);
float sglCurrentAngle = 0;
float sglTotalAngle = 0;
float sglTotalValues = 0;
for (int i = 0; i <= arrValues.Length - 1; i++)
{
sglTotalValues += arrValues[i];
}
for (int i = 0; i < arrValues.Length; i++)//绘制立体饼图阴影部分
{
sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
for(int j = 0; j < 20; j++)
{
objGraphics.FillPie(new HatchBrush(HatchStyle.Percent60,GetColor(i)),350, 190 + j, 200, 55,sglTotalAngle, sglCurrentAngle);
//objGraphics.DrawLine(Pens.Black,new Point(100,300),new Point(360,190));//绘制连线
//objGraphics.DrawLine(Pens.Black,new Point(350,190),new Point(350,190+j));
}
sglTotalAngle += sglCurrentAngle;
}
sglCurrentAngle = 0;
sglTotalAngle = 0;
sglTotalValues = 0;
for (int i = 0; i <= arrValues.Length - 1; i++)
{
sglTotalValues += arrValues[i];
} for (int i = 0; i < arrValues.Length; i++) //绘制数据饼状图
{
sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
objGraphics.FillPie(new SolidBrush(GetColor(i)), 350, 190, 200, 55, sglTotalAngle, sglCurrentAngle);
objGraphics.DrawPie(Pens.Black, 350, 190, 200, 55, sglTotalAngle, sglCurrentAngle);
sglTotalAngle += sglCurrentAngle;
}
objBitMap.Save(Response.OutputStream, ImageFormat.Gif); }
这是我的代码,已完成圆饼绘制
请教高人指教 for (int i = 0; i < arrValues.Length; i++) //绘制柱状图
{
objGraphics.FillRectangle(new SolidBrush(GetColor(i)), (i * 35) + 15, 400 - arrValues[i]*5, 25,
arrValues[i]*5);
objGraphics.DrawRectangle(Pens.Black, (i * 35) + 15, 400 - arrValues[i]*5, 25, arrValues[i]*5);
objGraphics.DrawString(arrValueNames[i].ToString() + "["+ arrValues[i].ToString()+"]", new Font("黑体", 15), Brushes.Black,(i * 35) + 15,170 - arrValues[i], drawFormat);
}
objGraphics.FillRectangle(new SolidBrush(GetColor(6)), (6 * 35) + 15, 400 - total*5, 25,
total*5);
objGraphics.DrawRectangle(Pens.Black, (6 * 35) + 15, 400 - total*5, 25, total*5);
objGraphics.DrawString("考试总人数" + "["+ total+"]", new Font("黑体", 15), Brushes.Black,(6 * 35) + 15,170 - total, drawFormat);
float sglCurrentAngle = 0;
float sglTotalAngle = 0;
float sglTotalValues = 0;
for (int i = 0; i <= arrValues.Length - 1; i++)
{
sglTotalValues += arrValues[i];
}
for (int i = 0; i < arrValues.Length; i++)//绘制立体饼图阴影部分
{
sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
for(int j = 0; j < 20; j++)
{
objGraphics.FillPie(new HatchBrush(HatchStyle.Percent60,GetColor(i)),350, 190 + j, 200, 55,sglTotalAngle, sglCurrentAngle);
//objGraphics.DrawLine(Pens.Black,new Point(100,300),new Point(360,190));//绘制连线
//objGraphics.DrawLine(Pens.Black,new Point(350,190),new Point(350,190+j));
}
sglTotalAngle += sglCurrentAngle;
}
sglCurrentAngle = 0;
sglTotalAngle = 0;
sglTotalValues = 0;
for (int i = 0; i <= arrValues.Length - 1; i++)
{
sglTotalValues += arrValues[i];
} for (int i = 0; i < arrValues.Length; i++) //绘制数据饼状图
{
sglCurrentAngle = arrValues[i] / sglTotalValues * 360;
objGraphics.FillPie(new SolidBrush(GetColor(i)), 350, 190, 200, 55, sglTotalAngle, sglCurrentAngle);
objGraphics.DrawPie(Pens.Black, 350, 190, 200, 55, sglTotalAngle, sglCurrentAngle);
sglTotalAngle += sglCurrentAngle;
}
objBitMap.Save(Response.OutputStream, ImageFormat.Gif); }
解决方案 »
- 关于建类的问题
- 关于脚本JS的问题
- 网站做好了,需要上传哪些文件?
- 小菜写了点代码,希望前辈们点意见和建议,比我菜的可以看看。
- 我的个人主页,采用的是免费的域名和空间,在任何地方都能正常浏览到,问题是如何能在百度、google中搜索到我的主页。
- 这个网页在.net下js就说 MediaPlayer 未定义,在html页面中是对的?
- 谁知道HashPasswordForStoringInConfigFile的算法细节?
- 关于SQL server与studio连接的问题
- table???
- 数据库
- sqlhelper的最高版本是多少,有的是3.1的,还没有更新的?
- 在nhibernate与access做框架下出现的错误(分数在另外2帖)
使用第三方空间客户端还得下载 很不方便huahua()
还是没看出怎么绘制比例的?
统计比例:A/B/C销售量
A 100 B 200 C 300那么A 占(100/(100+200+300))*360,B和C的计算一样然后先画A么,那么A是0度到(100/(100+200+300))*360
B是(100/(100+200+300))*360 到 (100/(100+200+300))*360 + (200/(100+200+300))*360
然后用个HASHTABLE之类的东西记录一下ABC对应的角度位置,再在扇形的角度的一半
比如说B就是100/(100+200+300))*360 + ((200/(100+200+300))*360)/2
上画线想怎么画就怎么画,很EASY的原来开发过一整套这种图形库的,不过属于公司......代码不能给,想法还是可以给的哈绝对可以画出来的