Dundas chart 饼图 有没有”起始角度”这个属性

qwinner 2007-07-16 02:33:30
Dundas chart 饼图 默认是从坐标0开始顺时针画每一块的,有没有一个属性能够让起始角度由自己来设置,比如从30度开始画。
...全文
316 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwinner 2007-07-18
  • 打赏
  • 举报
回复
谢谢hengwang007,你的方法可以。
不过dundas chart pie 饼图只要一个属性就可以了:
chart1.Series[0]["PieStartAngle"] = "30";
F15Eagle 2007-07-18
  • 打赏
  • 举报
回复
//获取数据
float[] arrValues2=new float[ds2.Tables[0].Rows.Count];
for(int i=0;i<ds2.Tables[0].Rows.Count;i++)
{
arrValues2[i]=float.Parse(ds2.Tables[0].Rows[i][0].ToString());
}
float sglCurrentAngle;//设置当前角度变量
float sglCurrentTotalAngle=0;//设置当前角度的累积
float sglTotalAngle=0;//设置数据总量
for(int i=0;i<arrValues2.Length;i++)
{
sglTotalAngle+=arrValues2[i];//取得数据总量
}
for(int i=0;i<arrValues2.Length;i++)
{
sglCurrentAngle=arrValues2[i]/sglTotalAngle*360;//求出该数据所占总数据的百分比
objGraphics2.FillPie(new SolidBrush(GetColor(i)),120,150,300,300,sglCurrentTotalAngle,sglCurrentAngle);//画出椭圆扇区
//确保最后一个扇区能够画满
if(i==arrValues2.Length-1)
{
objGraphics2.FillPie(new SolidBrush(GetColor(i)),120,150,300,300,sglCurrentTotalAngle,360-sglCurrentTotalAngle);//画出椭圆扇区
}
float sglCurrentAngle2=100*arrValues2[i]/sglTotalAngle;
float x=250;
float y=280;
float x1=(float)Math.Cos(3.1415926*sglCurrentTotalAngle/180);
float y1=(float)Math.Sin(3.1415926*sglCurrentTotalAngle/180);
PointF dataLeg1=new PointF(x+x1*175+i%3*18,y+y1*175+i%3*18);
objGraphics2.DrawString(portion[i].ToString().Substring(0,portion[i].ToString().IndexOf(".")+2)+"%",new Font("宋体",10),Brushes.Black,dataLeg1);
sglTotalAngle+=sglCurrentAngle;//设置下一个扇区的角度
sglCurrentTotalAngle+=sglCurrentAngle;
}
F15Eagle 2007-07-18
  • 打赏
  • 举报
回复
高手速来,关注中……
F15Eagle 2007-07-18
  • 打赏
  • 举报
回复
应该没有,不过你可以将默认起始角度加一个固定值,从这个角度开始画饼图
qwinner 2007-07-17
  • 打赏
  • 举报
回复
大家没碰到过这种情况吗,知道的请指教,感兴趣的请帮顶,谢谢
qwinner 2007-07-17
  • 打赏
  • 举报
回复
没人知道吗

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧