ChartDirector繪製3D餅圖

本文爲你演示如何用Web圖表控件ChartDirector繪製最基本的3D餅圖,這個餅圖帶有標題,並且其中一塊扇形分離了出來。

這是一個最基本的3D餅圖樣式:

113812867.jpg

基本步驟:

  • 用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;
}

ChartDirector繪製多層3D餅圖示例代碼:有時候,爲了讓圖表看起來更有層次感,可以將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;
}

教程參考:Web圖表控件ChartDirector使用教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章