原創|使用教程|編輯:郝浩|2013-03-25 10:14:58.000|閱讀 1766 次
概述:本文演示了如何用Web圖表控件ChartDirector繪制最基本的3D餅圖和多層次的3D餅圖。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本示例為你演示如何用Web圖表控件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將扇形的不同的高度以整數數組表示。
#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@fc6vip.cn
文章轉載自:慧都控件