summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMika Salmela <mika.salmela@digia.com>2013-07-26 13:56:45 +0300
committerMika Salmela <mika.salmela@digia.com>2013-07-26 13:59:23 +0300
commitd1eb5ceed9bb4e35a185e575f9bd9d2228f9f5e4 (patch)
tree39b75e46322759c56c1be7588bf44541155d9771 /examples
parent51d6d0258c8d1fe0608045986792ac5601f8613f (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.cpp20
-rw-r--r--examples/surfacechart/chartmodifier.h1
-rw-r--r--examples/surfacechart/main.cpp26
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,