ChartDirector Ver 3.0 (C++ Edition)

Multi-Depth Pie Chart




This example demonstrates using PieChart.set3D2 to create a 3D pie chart where sectors have different 3D heights.

Source Code Listing

[The following project is available in "cppdemo/multidepthpie".]
#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 //(0xccccff) background and a 1 pixel 3D border PieChart *c = new PieChart(360, 300, 0xccccff, -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 Times Bold Italic/14 points as font and 0x9999ff as //background color c->addTitle("Project Cost Breakdown", "timesbi.ttf", 14)->setBackground( 0x9999ff); //Set the pie data and the pie labels c->setData(DoubleArray(data, sizeof(data)/sizeof(*data)), StringArray( labels, sizeof(labels)/sizeof(*labels))); //Draw the pie in 3D c->set3D(DoubleArray(depths, sizeof(depths)/sizeof(*depths))); //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; }