彩票走势图

ChartDirector 6.3(C ++版)教程分享——饼状图下的侧标签布局

翻译|使用教程|编辑:黄竹雯|2018-11-16 12:08:53.000|阅读 580 次

概述:ChartDirector 6.3(C ++版)教程分享——侧标签布局

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

此示例演示了用于定位扇区标签的“侧标签布局”方法。它还演示了金属背景颜色,以及具有玻璃阴影效果和圆角的扇形标签。

使用“侧标签布局”,扇区标签位于图表的左侧和右侧。相比之下,所有先前的示例都使用“圆形标签布局”,其中标签围绕饼图圆形地定位。

“侧标签布局”的优点是标签会自动上下移动以避免重叠。在上图中,馅饼右下方有许多小扇区。请注意,标签会移动以避免重叠。

  • 金色背景通过使用实现创建金色,然后用它在作为图表背景颜色。
  • 类似地,图表标题的粉红色金属背景是通过使用创建粉红色金属颜色,然后使用标题对象的将其设置为背景颜色来实现的。
  • 侧标签布局方法使用指定。
  • 扇区标记的玻璃遮光效果是使用定义,然后应用到使用扇区标签扇区标签原型对象(通过获得的)。
  • 扇区标签的圆角使用扇区标签原型对象的进行配置。

此示例演示了一种通过使用调整第一个扇区的起始角度来进一步改进标签布局的技术。

如果数据有很多小值并且已经排序,那么小扇区就会挤在一起。对于这些情况,如果小扇区位于饼图的左侧或右侧,而不是顶部或底部,则标签布局将是最佳的(需要最少的移位)。

如果数据按降序排列(如本例所示),则可以使用135度的起始角度和顺时针扇区布局将小扇区放置在大约45-135度(饼图的右侧)。如果数据按升序排列,则可以使用具有顺时针扇区布局的45度的起始角度来实现类似的效果。

源代码清单

[以下代码可在“cppdemo / threedpie”中找到。Mf版本的代码可在“mfcdemo / mfcdemo”中找到(仅限Windows版本)。QT版本的代码可在“qtdemo / qtdemo”中找到。
 

#include“chartdir.h”

int main(int argc,char * argv [])
{
    //饼图的数据
    double data [] = {35,30,25,7,6,5,4,3,2,1};

    //饼图的标签
    const char * labels [] = {“Labor”,“Production”,“Facilities”,“Taxes”,“Misc”,“Legal”,
        “保险”,“许可证”,“运输”,“利息”};

    //创建一个大小为560 x 270像素的PieChart对象,带有金色背景和1像素3D
    // 边界
    PieChart * c =新的PieChart(560,270,Chart :: goldColor(),-1,1);

    //使用15pt Times Bold Italic字体和金属粉红色背景颜色添加标题框
    c-> addTitle(“Project Cost Breakdown”,“timesbi.ttf”,15) - > setBackground(Chart :: metalColor(
        0xff9999));

    //将饼图的中心设置为(280,135),将半径设置为110像素
    c-> setPieSize(280,135,110);

    //使用20像素3D深度在3D中绘制饼图
    C-> set3D(20);

    //使用侧标签布局方法
    C-> setLabelLayout(图::页面布局);

    //将标签框背景颜色设置为与扇区颜色相同,具有玻璃效果,并使用
    // 5像素圆角
    TextBox * t = c-> setLabelStyle();
    t-> setBackground(Chart :: SameAsMainColor,Chart :: Transparent,Chart :: glassEffect());
    T-> setRoundedCorners(5);

    //将扇区的边框颜色设置为与填充颜色相同的颜色。设置线条颜色
    //连接线为黑色(0x0)
    c-> setLineColor(Chart :: SameAsMainColor,0x000000);

    //当有许多小扇区时,将起始角度设置为135度可以改善布局
    //数据数组的结尾(即数据按降序排序)。是因为这个
    //使小扇区位于水平轴附近,文本标签的位置最小
    //倾向于重叠 对于按升序排序的数据,可以是45度的起始角度
    //用来代替。
    C-> setStartAngle(135);

    //设置饼图数据和饼图标签
    c-> setData(DoubleArray(data,(int)(sizeof(data)/ sizeof(data [0]))),StringArray(labels,(int)(
        sizeof(labels)/ sizeof(labels [0]))));

    //输出图表
    C-> makeChart( “sidelabelpie.png”);

    //释放资源
    删除c;
    返回0;
}

 

标签:图表

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP