removed limit

master
Benjamin Kraft 3 years ago
parent 9f7f9e4124
commit 1976724762
  1. 3
      Fragment.glsl
  2. 3
      headers/MainWindow.h
  3. 2
      headers/Mandelbrot.h
  4. 29
      src/MainWindow.cpp
  5. 5
      src/Mandelbrot.cpp

@ -2,7 +2,6 @@
out vec4 pixColor;
uniform int iterationCount;
uniform float divergeThreshold;
in vec2 complexPos;
@ -20,7 +19,7 @@ void main(){
vec2 z;
float stepsNeeded = 0;
while (stepsNeeded < iterationCount && length(z) < divergeThreshold){
while (stepsNeeded < iterationCount && length(z) < 2){
z = mul(z, z) + complexPos;
++stepsNeeded;
}

@ -7,9 +7,6 @@ class MainWindow : public QWidget {
Q_OBJECT
public:
explicit MainWindow();
private slots:
void iterationsSliderChanged(int);
void limitSliderChanged(int);
private:
void buildUI();
OutputWidget* outputWidget = new OutputWidget(this);

@ -12,10 +12,8 @@ public:
void zoom(double);
public slots:
void setIterations(int);
void updateLimit(int);
private:
int iterations = 0;
float divergeThreshold = 0;
double scale = 1;
QVector2D translation;
void setShaderValues(QOpenGLShaderProgram&);

@ -27,41 +27,12 @@ void MainWindow::buildUI() {
});
iterationsSlider->setValue(100);
auto limitCaption = new QLabel("Diverge threshold:");
auto limitLabel = new QLabel;
//limitLabel->setAlignment(Qt::AlignRight);
auto limitSlider = new QSlider(Qt::Horizontal);
limitSlider->setRange(100, 500);
connect(
limitSlider,
&QSlider::valueChanged,
this,
[limitLabel, this](int value) -> void {
this->outputWidget->getMandelbrot()->updateLimit(value);
this->outputWidget->update();
limitLabel->setNum(double(value) / 100);
});
limitSlider->setValue(200);
auto controls = new QGridLayout;
controls->addWidget(iterationsCaption, 1, 1);
controls->addWidget(iterationsLabel, 1, 2);
controls->addWidget(iterationsSlider, 1, 3);
controls->addWidget(limitCaption, 2, 1);
controls->addWidget(limitLabel, 2, 2);
controls->addWidget(limitSlider, 2, 3);
auto lyt = new QVBoxLayout(this);
lyt->addWidget(outputWidget);
lyt->addLayout(controls);
}
void MainWindow::iterationsSliderChanged(int newValue) {
//TODO update text label
outputWidget->update();
}
void MainWindow::limitSliderChanged(int newValue) {
//TODO update text label
outputWidget->update();
}

@ -17,7 +17,6 @@ void Mandelbrot::setShaderValues(QOpenGLShaderProgram &shader) {
shader.setUniformValue("origin", QVector2D(-1, 1));
shader.setUniformValue("size", QVector2D(2, 2));
shader.setUniformValue("iterationCount", iterations);
shader.setUniformValue("divergeThreshold", divergeThreshold);
}
void Mandelbrot::zoom(double delta) {
@ -28,10 +27,6 @@ void Mandelbrot::setIterations(int value) {
iterations = value;
}
void Mandelbrot::updateLimit(int value) {
divergeThreshold = float(value) / 100;
}

Loading…
Cancel
Save