Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Commit last experimental bits (dated December 6th, 2013).
[graphlib.git] / mandel / mandel.cpp
index c5fa28f..955d888 100644 (file)
@@ -1,9 +1,6 @@
 #include <DrawingWindow.h>
 #include <QApplication>
 #include <iostream>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
 
 struct parameters {
     // nombre max d'itérations
@@ -56,13 +53,6 @@ static int check_point(parameters& p, double cr, double ci)
     return i;
 }
 
-// int check_point(parameters& p, int x, int y)
-// {
-//     double cr = p.Rmin + x * p.Rscale;
-//     double ci = p.Imax - y * p.Iscale;
-//     return check_point(p, cr, ci);
-// }
-
 static void set_color(DrawingWindow& w, parameters& p, int i)
 {
     double rouge, vert, bleu;
@@ -97,32 +87,23 @@ static void do_mandel(DrawingWindow& w, parameters& p)
     int x, y;                   // le pixel considéré
     double cr, ci;              // le complexe correspondant
 
-    int kmax = 4;
-    for (int k = kmax ; k != 0 ; k /= 2) {
-        int kk = 2 * k;
-        for (y = 0 ; y < w.height ; y += k) {
-            ci = p.Imax - y * p.Iscale;
-            cr = p.Rmin;
-            int x0 = 0;
-            int i0 = check_point(p, cr, ci);
-            for (x = k ; x < w.width ; x += k) {
-                cr = p.Rmin + x * p.Rscale;
-                if (x % kk != 0 || y % kk != 0 || k == kmax) {
-                    int i = check_point(p, cr, ci);
-                    if (i != i0) {
-                        set_color(w, p, i0);
-                        if (k == 1)
-                            w.drawLine(x0, y, x - 1, y);
-                        else
-                            w.fillRect(x0, y, x - 1, y + k - 1);
-                        i0 = i;
-                        x0 = x;
-                    }
-                }
+    for (y = 0 ; y < w.height ; y++) {
+        ci = p.Imax - y * p.Iscale;
+        cr = p.Rmin;
+        int x0 = 0;
+        int i0 = check_point(p, cr, ci);
+        for (x = 1 ; x < w.width ; x++) {
+            cr = p.Rmin + x * p.Rscale;
+            int i = check_point(p, cr, ci);
+            if (i != i0) {
+                set_color(w, p, i0);
+                w.drawLine(x0, y, x - 1, y);
+                i0 = i;
+                x0 = x;
             }
-            set_color(w, p, i0);
-            w.fillRect(x0, y, w.width - 1, y + k - 1);
         }
+        set_color(w, p, i0);
+        w.drawLine(x0, y, w.width - 1, y);
     }
 }