diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-07-26 13:56:45 +0300 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-07-26 13:59:23 +0300 |
commit | d1eb5ceed9bb4e35a185e575f9bd9d2228f9f5e4 (patch) | |
tree | 39b75e46322759c56c1be7588bf44541155d9771 /examples | |
parent | 51d6d0258c8d1fe0608045986792ac5601f8613f (diff) |
Surface gradient to theme and drawing implementation to renderer.
Change-Id: I78a3f3d0aa9bd24a05368545cf8e779dda65ef4c
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/surfacechart/chartmodifier.cpp | 20 | ||||
-rw-r--r-- | examples/surfacechart/chartmodifier.h | 1 | ||||
-rw-r--r-- | examples/surfacechart/main.cpp | 26 |
3 files changed, 45 insertions, 2 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp index a78b2d2e..010c0b6f 100644 --- a/examples/surfacechart/chartmodifier.cpp +++ b/examples/surfacechart/chartmodifier.cpp @@ -85,7 +85,7 @@ void ChartModifier::toggleSqrtSin(bool enable) for (qreal i = -8.0 + stepZ / 2.0 ; i < 8.0 ; i += stepZ) { for (qreal j = -8.0 + stepX / 2.0; j < 8.0; j += stepX) { qreal R = qSqrt(i*i + j*j) + 0.01; - qreal y = sin(R)/R + 1.0; + qreal y = (sin(R)/R + 0.24) * 1.61; series << y; if (y > biggest) biggest = y; if (y < smallest) smallest = y; @@ -101,6 +101,24 @@ void ChartModifier::toggleSqrtSin(bool enable) } } +void ChartModifier::togglePlane(bool enable) +{ + qDebug() << "ChartModifier::togglePlane " << enable; + if (enable) { + QList<qreal> series; + + qreal y = 2.0 / qreal(m_xCount - 1); + for (int i = 0; i < m_zCount; i++) { + for (int j = 0; j < m_xCount; j++) { + series << j * y; + } + } + + m_chart->setTickCount(4, 0.5f); + m_chart->appendSeries(series, m_xCount, m_zCount); + } +} + void ChartModifier::toggleGridSliderLock(bool enable) { m_gridSlidersLocked = enable; diff --git a/examples/surfacechart/chartmodifier.h b/examples/surfacechart/chartmodifier.h index 8b84efbb..3daf96ed 100644 --- a/examples/surfacechart/chartmodifier.h +++ b/examples/surfacechart/chartmodifier.h @@ -56,6 +56,7 @@ public: void toggleSmooth(bool enabled); void toggleSurfaceGrid(bool enable); void toggleSqrtSin(bool enable); + void togglePlane(bool enable); void toggleGridSliderLock(bool enable); void setGridSliderX(QSlider *slider) { m_gridSliderX = slider; } void setGridSliderZ(QSlider *slider) { m_gridSliderZ = slider; } diff --git a/examples/surfacechart/main.cpp b/examples/surfacechart/main.cpp index 474f273b..c9d95c67 100644 --- a/examples/surfacechart/main.cpp +++ b/examples/surfacechart/main.cpp @@ -51,6 +51,8 @@ #include <QSlider> #include <QLabel> #include <QScreen> +#include <QPainter> +#include <QDebug> using namespace QtDataVis3D; @@ -89,6 +91,10 @@ int main(int argc, char *argv[]) sqrtSinCB->setText(QStringLiteral("Sqrt & Sin")); sqrtSinCB->setChecked(false); + QCheckBox *planeCB = new QCheckBox(widget); + planeCB->setText(QStringLiteral("Plane")); + planeCB->setChecked(false); + QCheckBox *gridSlidersLockCB = new QCheckBox(widget); gridSlidersLockCB->setText(QStringLiteral("Lock")); gridSlidersLockCB->setChecked(false); @@ -106,16 +112,32 @@ int main(int argc, char *argv[]) gridSliderZ->setMaximum(200); gridSliderZ->setEnabled(true); + QLinearGradient gr(0, 0, 100, 1); + gr.setColorAt(0.0, Qt::green); + gr.setColorAt(0.5, Qt::yellow); + gr.setColorAt(1.0, Qt::red); + QPixmap pm(100, 24); + QPainter pmp(&pm); + pmp.setBrush(QBrush(gr)); + pmp.setPen(Qt::NoPen); + pmp.drawRect(0, 0, 100, 24); + //pm.save("C:\\Users\\misalmel\\Work\\test.png", "png"); + QPushButton *color = new QPushButton(); + color->setIcon(QIcon(pm)); + color->setIconSize(QSize(100, 24)); + color->setFlat(true); // Add controls to the layout vLayout->addWidget(smoothCB); vLayout->addWidget(surfaceGridCB); - vLayout->addWidget(new QLabel(QStringLiteral("Select surface"))); + vLayout->addWidget(new QLabel(QStringLiteral("Select surface sample"))); vLayout->addWidget(sqrtSinCB); + vLayout->addWidget(planeCB); vLayout->addWidget(new QLabel(QStringLiteral("Adjust sample count"))); vLayout->addWidget(gridSlidersLockCB); vLayout->addWidget(gridSliderX); vLayout->addWidget(gridSliderZ); + vLayout->addWidget(color); widget->show(); @@ -128,6 +150,8 @@ int main(int argc, char *argv[]) modifier, &ChartModifier::toggleSurfaceGrid); QObject::connect(sqrtSinCB, &QCheckBox::stateChanged, modifier, &ChartModifier::toggleSqrtSin); + QObject::connect(planeCB, &QCheckBox::stateChanged, + modifier, &ChartModifier::togglePlane); QObject::connect(gridSlidersLockCB, &QCheckBox::stateChanged, modifier, &ChartModifier::toggleGridSliderLock); QObject::connect(gridSliderX, &QSlider::valueChanged, |