diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-01 11:56:38 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-01 11:59:57 +0300 |
commit | 148047c90133d19a194fb450a6c619a56c8e6833 (patch) | |
tree | 0571969dcda05fe69de9ac418721d67f4b7af1d4 /examples | |
parent | 04aad082a33a51b8ab5563fb8ffb996b19e0e4ed (diff) |
Position surface selection ball correctly on y-axis
Task-number: QTRD-2354
Change-Id: I219ef7f45a046b3fc9045b2eb704f190e66031b1
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/surfacechart/chartmodifier.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp index db242253..3b5d56ca 100644 --- a/examples/surfacechart/chartmodifier.cpp +++ b/examples/surfacechart/chartmodifier.cpp @@ -77,27 +77,33 @@ void ChartModifier::toggleSqrtSin(bool enable) if (enable) { qDebug() << "Create Sqrt&Sin surface, (" << m_xCount << ", " << m_zCount << ")"; - float stepZ = 16.0f / float(m_zCount); - float stepX = 16.0f / float(m_xCount); + float minX = -10.0; + float maxX = 10.0; + float minZ = -10.0; + float maxZ = 10.0; + float stepX = (maxX - minX) / float(m_xCount - 1); + float stepZ = (maxZ - minZ) / float(m_zCount - 1); QSurfaceDataArray *dataArray = new QSurfaceDataArray; dataArray->reserve(m_zCount); - for (float i = -8.0f + stepZ / 2.0f ; i < 8.0f ; i += stepZ) { + for (float i = 0; i < m_zCount; i++) { QSurfaceDataRow *newRow = new QSurfaceDataRow(m_xCount); - int index = 0; - for (float j = -8.0f + stepX / 2.0f; j < 8.0f; j += stepX) { - float R = qSqrt(i * i + j * j) + 0.01f; - float y = (qSin(R) / R + 0.24f) * 1.61f; - (*newRow)[index++].setPosition(QVector3D(j, y, i)); + for (float j = 0; j < m_xCount; j++) { + float x = j * stepX + minX; + float z = i * stepZ + minZ; + float R = qSqrt(x * x + z * z) + 0.01f; + float y = (qSin(R) / R + 0.24f) * 1.61f + 1.0f; + (*newRow)[j].setPosition(QVector3D(x, y, z)); + qDebug() << x << y << z; } *dataArray << newRow; } - m_chart->axisY()->setRange(0.0, 2.0); + m_chart->axisY()->setRange(1.0, 3.0); m_chart->axisX()->setLabelFormat("%.2f"); m_chart->axisZ()->setLabelFormat("%.2f"); - resetArrayAndSliders(dataArray, -8.0, 8.0, -8.0, 8.0); + resetArrayAndSliders(dataArray, minZ, maxZ, minX, maxX); m_activeSample = ChartModifier::SqrtSin; } else { |