@@ -25,6 +25,7 | |||
|
25 | 25 | <li><a href="qpieslice.html">QPieSlice</a></li> |
|
26 | 26 | <li><a href="qscatterseries.html">QScatterSeries</a></li> |
|
27 | 27 | <li><a href="qseries.html">QSeries</a></li> |
|
28 | <li><a href="qsplineseries.html">QSplineSeries</a></li> | |
|
28 | 29 | <li><a href="qstackedbarseries.html">QStackedBarSeries</a></li> |
|
29 | 30 | </ul> |
|
30 | 31 | </td> |
@@ -1,7 +1,30 | |||
|
1 | 1 | #include "qsplineseries.h" |
|
2 | 2 | |
|
3 | /*! | |
|
4 | \class QSplineSeries | |
|
5 | \brief Series type used to store data needed to draw a spline. | |
|
6 | ||
|
7 | QSplineSeries stores the data points along with the segment control points needed by QPainterPath to draw spline | |
|
8 | Control points are automatically calculated when data changes. The algorithm computes the points so that the normal spline can be drawn. | |
|
9 | */ | |
|
10 | ||
|
11 | /*! | |
|
12 | \fn QSeriesType QSplineSeries::type() const | |
|
13 | Returns the type of the series | |
|
14 | */ | |
|
15 | ||
|
16 | /*! | |
|
17 | \fn QSeriesType QSplineSeries::controlPoint(int index) const | |
|
18 | Returns the control point specified by \a index | |
|
19 | */ | |
|
20 | ||
|
3 | 21 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
4 | 22 | |
|
23 | /*! | |
|
24 | Constructs empty series object which is a child of \a parent. | |
|
25 | When series object is added to QChartView or QChart instance then the ownerships is transfered. | |
|
26 | */ | |
|
27 | ||
|
5 | 28 | QSplineSeries::QSplineSeries(QObject *parent) : |
|
6 | 29 | QLineSeries(parent) |
|
7 | 30 | { |
@@ -10,11 +33,15 QSplineSeries::QSplineSeries(QObject *parent) : | |||
|
10 | 33 | connect(this,SIGNAL(pointReplaced(int)), this, SLOT(updateControlPoints())); |
|
11 | 34 | } |
|
12 | 35 | |
|
36 | /*! | |
|
37 | \internal | |
|
38 | Calculates control points which are needed by QPainterPath.cubicTo function to draw the cubic Bezier cureve between two points. | |
|
39 | */ | |
|
13 | 40 | void QSplineSeries::calculateControlPoints() |
|
14 | 41 | { |
|
15 | 42 | |
|
16 | 43 | // Based on http://www.codeproject.com/Articles/31859/Draw-a-Smooth-Curve-through-a-Set-of-2D-Points-wit |
|
17 |
// CPOL Licen |
|
|
44 | // CPOL License | |
|
18 | 45 | |
|
19 | 46 | int n = m_x.size() - 1; |
|
20 | 47 | if (n == 1) |
@@ -74,6 +101,9 void QSplineSeries::calculateControlPoints() | |||
|
74 | 101 | } |
|
75 | 102 | } |
|
76 | 103 | |
|
104 | /*! | |
|
105 | \internal | |
|
106 | */ | |
|
77 | 107 | QList<qreal> QSplineSeries::getFirstControlPoints(QList<qreal> rhs) |
|
78 | 108 | { |
|
79 | 109 | QList<qreal> x; // Solution vector. |
@@ -94,6 +124,10 QList<qreal> QSplineSeries::getFirstControlPoints(QList<qreal> rhs) | |||
|
94 | 124 | return x; |
|
95 | 125 | } |
|
96 | 126 | |
|
127 | /*! | |
|
128 | \internal | |
|
129 | Updates the control points, besed on currently avaiable knots. | |
|
130 | */ | |
|
97 | 131 | void QSplineSeries::updateControlPoints() |
|
98 | 132 | { |
|
99 | 133 | if(m_x.size() > 1) |
@@ -17,7 +17,7 class QSplineSeries : public QLineSeries | |||
|
17 | 17 | QSplineSeries(QObject *parent = 0); |
|
18 | 18 | QSeriesType type() const { return QSeries::SeriesTypeSpline; } |
|
19 | 19 | |
|
20 | int count() const { return m_x.size(); } | |
|
20 | // int count() const { return m_x.size(); } | |
|
21 | 21 | QPointF controlPoint(int index) const { return m_controlPoints[index]; } |
|
22 | 22 | |
|
23 | 23 | private: |
General Comments 0
You need to be logged in to leave comments.
Login now