/* Rem Rem Krzywe Hilberta wg. algorytmu Niklausa Wirth'a Rem zawartego w książce "Algorytmy + struktury danych = programy" Rem w chwili radości (21 grudnia 2002) z Pascala na VBA przetłumaczył Wojtek43 Rem */ var XX; var YY; var x; var y; var h; function Hilbert () { N = 5; h0 = 700; InicjujPisanie (); h = h0; x0 = h / 2; y0 = x0; for (i = 1; i < N; i++) { h = h / 2; x0 = x0 + h / 2; y0 = y0 + h / 2; x = x0; y = y0; UstawPioro (18 / i); A (i); } } function InicjujPisanie() { x = 0; y = 0; } function UstawPioro (grubosc) { XX = x; YY = y; ctx.lineWidth = grubosc; } function Kresl () { // ActiveDocument.Shapes.AddLine(XX, YY, x, y).Select // Selection.ShapeRange.Line.Weight = grubość // Selection.EndKey ' to służy temu, aby na ekranie pojawiło się to co się namalowało ctx.moveTo (XX, YY); ctx.lineTo (x, y); XX = x; YY = y; ctx.stroke(); //po zakończeniu rysowania obrysowujemy linię } function A(i) { if (i > 0) { D (i - 1); x = x - h; Kresl(); A (i - 1); y = y - h; Kresl(); A (i - 1); x = x + h; Kresl(); B (i - 1); } } function B(i) { if (i > 0) { C (i-1); y = y + h; Kresl(); B (i-1); x = x + h; Kresl(); B (i-1); y = y - h; Kresl(); A (i-1); } } function C(i) { if ( i > 0 ) { B (i-1); x = x + h; Kresl(); C (i-1); y = y + h; Kresl(); C (i-1); x = x - h; Kresl(); D (i-1); } } function D(i) { if ( i > 0 ) { A (i-1); y = y - h; Kresl(); D (i-1); x = x - h; Kresl(); D (i-1); y = y + h; Kresl(); C (i-1); } }