ChartDirector 7.1 (C++ Edition)

Built-In Symbols




This example demonstrates the built-in symbols supported by ChartDirector.

Source Code Listing

The following is the command line version of the code in "cppdemo/builtinsymbols". The MFC version of the code is in "mfcdemo/mfcdemo". The Qt Widgets version of the code is in "qtdemo/qtdemo". The QML/Qt Quick version of the code is in "qmldemo/qmldemo".
#include "chartdir.h" int main(int argc, char *argv[]) { // Some ChartDirector built-in symbols int symbols[] = {Chart::CircleShape, Chart::GlassSphereShape, Chart::GlassSphere2Shape, Chart::SolidSphereShape, Chart::SquareShape, Chart::DiamondShape, Chart::TriangleShape, Chart::RightTriangleShape, Chart::LeftTriangleShape, Chart::InvertedTriangleShape, Chart::StarShape(3), Chart::StarShape(4), Chart::StarShape(5), Chart::StarShape(6), Chart::StarShape(7), Chart::StarShape(8), Chart::StarShape(9), Chart::StarShape(10), Chart::PolygonShape(5), Chart::Polygon2Shape(5), Chart::PolygonShape(6), Chart::Polygon2Shape(6), Chart::Polygon2Shape(7), Chart::CrossShape(0.1), Chart::CrossShape( 0.2), Chart::CrossShape(0.3), Chart::CrossShape(0.4), Chart::CrossShape(0.5), Chart::CrossShape(0.6), Chart::CrossShape(0.7), Chart::Cross2Shape(0.1), Chart::Cross2Shape( 0.2), Chart::Cross2Shape(0.3), Chart::Cross2Shape(0.4), Chart::Cross2Shape(0.5), Chart::Cross2Shape(0.6), Chart::Cross2Shape(0.7), Chart::ArrowShape(), Chart::ArrowShape(45 ), Chart::ArrowShape(90, 0.5), Chart::ArrowShape(135, 0.5, 0.2), Chart::ArrowShape(180, 0.3, 0.2, 0.3), Chart::ArrowShape(225, 1, 0.5, 0.7), Chart::ArrowShape(270, 1, 0.5, 0.25), Chart::ArrowShape(315, 0.5, 0.5, 0), Chart::ArrowShape(30, 0.5, 0.1, 0.6), Chart::ArrowShape(210, 0.5, 0.1, 0.6), Chart::ArrowShape(330, 0.7, 0.1), Chart::ArrowShape( 150, 0.7, 0.1)}; const int symbols_size = (int)(sizeof(symbols)/sizeof(*symbols)); // Create a XYChart object of size 500 x 450 pixels XYChart* c = new XYChart(500, 450); // Set the plotarea at (55, 40) and of size 400 x 350 pixels, with a light grey border // (0xc0c0c0). Turn on both horizontal and vertical grid lines with light grey color (0xc0c0c0) c->setPlotArea(55, 40, 400, 350, -1, -1, 0xc0c0c0, 0xc0c0c0, -1); // Add a title to the chart using 18pt Times Bold Itatic font. c->addTitle("Built-in Symbols", "Times New Roman Bold Italic", 18); // Set the axes line width to 3 pixels c->xAxis()->setWidth(3); c->yAxis()->setWidth(3); // Ensure the ticks are at least 1 unit part (integer ticks) c->xAxis()->setMinTickInc(1); c->yAxis()->setMinTickInc(1); // Add each symbol as a separate scatter layer. for(int i = 0; i < symbols_size; ++i) { double xCoor[] = {i % 7 + 1.0}; double yCoor[] = {i / 7 + 1.0}; c->addScatterLayer(DoubleArray(xCoor, 1), DoubleArray(yCoor, 1), "", symbols[i], 17); } // Output the chart c->makeChart("builtinsymbols.png"); //free up resources delete c; return 0; }