本文整理汇总了C++中Axis::getAlignment方法的典型用法代码示例。如果您正苦于以下问题:C++ Axis::getAlignment方法的具体用法?C++ Axis::getAlignment怎么用?C++ Axis::getAlignment使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Axis
的用法示例。
在下文中一共展示了Axis::getAlignment方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: trackLineAxis
//
// Draw track line with axis labels
//
void TrackAxis::trackLineAxis(XYChart *c, int mouseX)
{
// Clear the current dynamic layer and get the DrawArea object to draw on it.
DrawArea *d = c->initDynamicLayer();
// The plot area object
PlotArea *plotArea = c->getPlotArea();
// Get the data x-value that is nearest to the mouse, and find its pixel coordinate.
double xValue = c->getNearestXValue(mouseX);
int xCoor = c->getXCoor(xValue);
// The vertical track line is drawn up to the highest data point (the point with smallest
// y-coordinate). We need to iterate all datasets in all layers to determine where it is.
int minY = plotArea->getBottomY();
// Iterate through all layers to find the highest data point
for(int i = 0; i < c->getLayerCount(); ++i) {
Layer *layer = c->getLayerByZ(i);
// The data array index of the x-value
int xIndex = layer->getXIndexOf(xValue);
// Iterate through all the data sets in the layer
for(int j = 0; j < layer->getDataSetCount(); ++j) {
DataSet *dataSet = layer->getDataSetByZ(j);
double dataPoint = dataSet->getPosition(xIndex);
if ((dataPoint != Chart::NoValue) && (dataSet->getDataColor() != (int)Chart::Transparent))
minY = min(minY, c->getYCoor(dataPoint, dataSet->getUseYAxis()));
}
}
// Draw a vertical track line at the x-position up to the highest data point.
d->vline(max(minY, plotArea->getTopY()), plotArea->getBottomY() + 6, xCoor, d->dashLineColor(
0x000000, 0x0101));
// Draw a label on the x-axis to show the track line position
ostringstream xlabel;
xlabel << "<*font,bgColor=000000*> " << c->xAxis()->getFormattedLabel(xValue, "mmm dd, yyyy")
<< " <*/font*>";
TTFText *t = d->text(xlabel.str().c_str(), "arialbd.ttf", 8);
t->draw(xCoor, plotArea->getBottomY() + 6, 0xffffff, Chart::Top);
t->destroy();
// Iterate through all layers to build the legend array
for(int i = 0; i < c->getLayerCount(); ++i) {
Layer *layer = c->getLayerByZ(i);
// The data array index of the x-value
int xIndex = layer->getXIndexOf(xValue);
// Iterate through all the data sets in the layer
for(int j = 0; j < layer->getDataSetCount(); ++j) {
DataSet *dataSet = layer->getDataSetByZ(j);
// The positional value, axis binding, pixel coordinate and color of the data point.
double dataPoint = dataSet->getPosition(xIndex);
Axis *yAxis = dataSet->getUseYAxis();
int yCoor = c->getYCoor(dataPoint, yAxis);
int color = dataSet->getDataColor();
// Draw the axis label only for visible data points of named data sets
if ((dataPoint != Chart::NoValue) && (color != (int)Chart::Transparent) && (yCoor >=
plotArea->getTopY()) && (yCoor <= plotArea->getBottomY())) {
// The axis label consists of 3 parts - a track dot for the data point, an axis label,
// and a line joining the track dot to the axis label.
// Draw the line first. The end point of the line at the axis label side depends on
// whether the label is at the left or right side of the axis (that is, on whether the
// axis is on the left or right side of the plot area).
int xPos = yAxis->getX() + ((yAxis->getAlignment() == Chart::Left) ? -4 : 4);
d->hline(xCoor, xPos, yCoor, d->dashLineColor(color, 0x0101));
// Draw the track dot
d->circle(xCoor, yCoor, 4, 4, color, color);
// Draw the axis label. If the axis is on the left side of the plot area, the labels
// should right aligned to the axis, and vice versa.
ostringstream axisLabel;
axisLabel << "<*font,bgColor=" << hex << color << "*> "
<< c->formatValue(dataPoint, "{value|P4}") << " <*/font*>";
t = d->text(axisLabel.str().c_str(), "arialbd.ttf", 8);
t->draw(xPos, yCoor, 0xffffff,
((yAxis->getAlignment() == Chart::Left) ? Chart::Right : Chart::Left));
t->destroy();
}
}
}
}