彩票走势图

Web图表控件ChartDirector使用教程:绘制3D饼图

原创|使用教程|编辑:郝浩|2013-03-25 10:14:58.000|阅读 1722 次

概述:本文演示了如何用Web图表控件ChartDirector绘制最基本的3D饼图和多层次的3D饼图。

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

相关链接:

本示例为你演示如何用Web图表控件ChartDirector绘制最基本的3D饼图,这个饼图带有标题,并且其中一块扇形分离了出来。

这是一个最基本的3D饼图样式:

Web图表控件ChartDirector绘制最基本的3D饼图

基本步骤:

  • 用BaseChart.addTitle为图表添加标题
  • 用PieChart.set3D将饼图绘制为3D效果
  • 用参数PieChart.setExplode将其中一块扇形分离出来

ChartDirector绘制3D饼图示例代码:

#include "chartdir.h"

int main(int argc, char *argv[])
{
    // The data for the pie chart
    double data[] = {25, 18, 15, 12, 8, 30, 35};

    // The labels for the pie chart
    const char *labels[] = {"Labor", "Licenses", "Taxes", "Legal", "Insurance",
        "Facilities", "Production"};

    // Create a PieChart object of size 360 x 300 pixels
    PieChart *c = new PieChart(360, 300);

    // Set the center of the pie at (180, 140) and the radius to 100 pixels
    c->setPieSize(180, 140, 100);

    // Add a title to the pie chart
    c->addTitle("Project Cost Breakdown");

    // Draw the pie in 3D
    c->set3D();

    // Set the pie data and the pie labels
    c->setData(DoubleArray(data, (int)(sizeof(data) / sizeof(data[0]))), StringArray(
        labels, (int)(sizeof(labels) / sizeof(labels[0]))));

    // Explode the 1st sector (index = 0)
    c->setExplode(0);

    // Output the chart
    c->makeChart("threedpie.png");

    //free up resources
    delete c;
    return 0;
}

有时候,为了让图表看起来更有层次感,可以将3D饼图的每一块扇形设置为不同的高度。基本的3D饼图是用PieChart.set3D将所有扇形设置为单一的3D深度,在本例中,我们用PieChart.set3D2将扇形的不同的高度以整数数组表示。

ChartDirector绘制多层3D饼图示例代码:

#include "chartdir.h"

int main(int argc, char *argv[])
{
    // The data for the pie chart
    double data[] = {72, 18, 15, 12};

    // The labels for the pie chart
    const char *labels[] = {"Labor", "Machinery", "Facilities", "Computers"};

    // The depths for the sectors
    double depths[] = {30, 20, 10, 10};

    // Create a PieChart object of size 360 x 300 pixels, with a light blue (DDDDFF)
    // background and a 1 pixel 3D border
    PieChart *c = new PieChart(360, 300, 0xddddff, -1, 1);

    // Set the center of the pie at (180, 175) and the radius to 100 pixels
    c->setPieSize(180, 175, 100);

    // Add a title box using 15 pts Times Bold Italic font and blue (AAAAFF) as
    // background color
    c->addTitle("Project Cost Breakdown", "timesbi.ttf", 15)->setBackground(0xaaaaff)
        ;

    // Set the pie data and the pie labels
    c->setData(DoubleArray(data, (int)(sizeof(data) / sizeof(data[0]))), StringArray(
        labels, (int)(sizeof(labels) / sizeof(labels[0]))));

    // Draw the pie in 3D with variable 3D depths
    c->set3D(DoubleArray(depths, (int)(sizeof(depths) / sizeof(depths[0]))));

    // Set the start angle to 225 degrees may improve layout when the depths of the
    // sector are sorted in descending order, because it ensures the tallest sector
    // is at the back.
    c->setStartAngle(225);

    // Output the chart
    c->makeChart("multidepthpie.png");

    //free up resources
    delete c;
    return 0;
}


标签:

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

文章转载自:慧都控件

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP