Met een 3d versie van de spiraal krijg je een bol en dat is natuurlijk ook een fractal.
<HTML>
<BODY>
<br>
<br>
<!– Bolspiraal –>
<canvas id=”myCanvas” width=”1000″ height=”800″>
</canvas>
<SCRIPT>
var TekenOppervlak = document.getElementById(“myCanvas”);
var TekenVlak = TekenOppervlak.getContext(“2d”);
TekenVlak.fillStyle = ‘black’;
TekenVlak.strokeStyle = ‘black’;
var PI = Math.PI;
var P = 1 / Math.sqrt (2);<!– Projectie getal –>
var M = 0;<!– Loop counter –>
var S = 0;
var X = 0;
var Y = 0;
var A = 0.2;<!– Spiraal constante –>
var C = 0.9;<!– Helling projectievlak –>
var Q = P * Math.sqrt(1 – C * C);<!– Projectie getal –>
var Zx = 100;<!– Zoom factor –>
var Zy = 100;<!– Zoom factor –>
var Xmid = 300;
var Ymid = 200;
var Titel = “Fractal : Bolspiraal”;
var Bodem = “\u00A9 H.L. Muller 2016”;
TekenVlak.font = “16pt sans-serif”;
TekenVlak.fillText(Titel,20,20);
N = -500;
while (N < 501){
S = N * PI / 50;
T = Math.atan(A * S);
X = Math.cos(S) * Math.cos(T);
Y = Math.sin(S) * Math.cos(T);
Z = -1 * Math.sin(T);
U = P * (Y – X);
V = (C * Z) – (Q * (X + Y));
if (N == -500){
X1rel = Xmid + (U * Zx);
Y1rel = Ymid + (V * Zx);
TekenVlak.moveTo (X1rel, Y1rel);
TekenVlak.stroke();
}
else {
X1rel = Xmid + (U * Zx);
Y1rel = Ymid + (V * Zy);
TekenVlak.lineTo (X1rel, Y1rel);
TekenVlak.stroke();
}
N++;
}
TekenVlak.fillStyle = ‘black’;
TekenVlak.font = “8pt sans-serif”;
TekenVlak.fillText(Bodem,20,380);
TekenVlak.stroke();
</SCRIPT>
<br>
</BODY>
</HTML>