From 5e80f69c33f696e8c62ac74fbb9a91de61cfe65d Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 12 Jan 2017 18:02:45 +0100 Subject: Be (somewhat more) consistent about the value of pi Use M_PI (from qmath.h) rather than hand-rolled values. Simplify some untidy arithmetic, eliminating some duplication and inefficiency. Task-number: QTBUG-58083 Change-Id: I6ec5a91cae30693e0c17f80e2be235faa1edcdb7 Reviewed-by: hjk --- examples/svg/network/bearercloud/bearercloud.cpp | 6 +--- examples/svg/opengl/framebufferobject/glwidget.cpp | 34 +++++++++------------- 2 files changed, 14 insertions(+), 26 deletions(-) (limited to 'examples') diff --git a/examples/svg/network/bearercloud/bearercloud.cpp b/examples/svg/network/bearercloud/bearercloud.cpp index d3f02f2..6a6b4d1 100644 --- a/examples/svg/network/bearercloud/bearercloud.cpp +++ b/examples/svg/network/bearercloud/bearercloud.cpp @@ -48,11 +48,7 @@ #include -#include - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif +#include //! [0] BearerCloud::BearerCloud(QObject *parent) diff --git a/examples/svg/opengl/framebufferobject/glwidget.cpp b/examples/svg/opengl/framebufferobject/glwidget.cpp index bc6bf57..f7d94db 100644 --- a/examples/svg/opengl/framebufferobject/glwidget.cpp +++ b/examples/svg/opengl/framebufferobject/glwidget.cpp @@ -39,10 +39,9 @@ ****************************************************************************/ #include +#include #include "glwidget.h" -#include - #ifndef GL_MULTISAMPLE #define GL_MULTISAMPLE 0x809D #endif @@ -285,8 +284,6 @@ void GLWidget::restoreGLState() glPopAttrib(); } -#define PI 3.14159 - void GLWidget::timerEvent(QTimerEvent *) { if (QApplication::mouseButtons() != 0) @@ -299,31 +296,26 @@ void GLWidget::timerEvent(QTimerEvent *) else if (!scale_in && scale < .5f) scale_in = true; - scale = scale_in ? scale + scale*0.01f : scale-scale*0.01f; + scale *= scale_in ? 1.01f : 0.99f; rot_z += 0.3f; rot_x += 0.1f; - int dx, dy; // disturbance point - float s, v, W, t; - int i, j; static float wt[128][128]; const int width = logo.width(); + const int dx = width >> 1, dy = dx; // disturbance point + const float W = .3f; + const float v = -4; // wave speed const int AMP = 5; - dx = dy = width >> 1; - - W = .3f; - v = -4; // wave speed - - for (i = 0; i < width; ++i) { - for ( j = 0; j < width; ++j) { - s = sqrt((double) ((j - dx) * (j - dx) + (i - dy) * (i - dy))); - wt[i][j] += 0.1f; - t = s / v; + for (int i = 0; i < width; ++i) { + for (int j = 0; j < width; ++j) { + const float s = hypot(j - dx, i - dy); + wt[i][j] += 0.1f; + const double raw = AMP * sin(2 * M_PI * W * (wt[i][j] + s / v)); if (s != 0) - wave[i*width + j] = AMP * sin(2 * PI * W * (wt[i][j] + t)) / (0.2*(s + 2)); + wave[i * width + j] = raw / (0.2 * (s + 2)); else - wave[i*width + j] = AMP * sin(2 * PI * W * (wt[i][j] + t)); - } + wave[i * width + j] = raw; + } } } -- cgit v1.2.1