Galleria di esempiPoligoni regolariFrattaliDr. Geo's mascot

Frattali

La costruzione di una curva frattale a forma d'albero si può realizzare facilmente utilizzando una FSD. Il codice sorgente della figura è incredibilmente compatto e incomparabilmente più efficiente rispetto all'esecuzione della figura attraverso l'interfaccia grafica.

(new-figure "Albero")
(lets Numeric "A1" free 2 2 +3.4)
(lets Numeric "A2" free 2 3 -3.7)
(lets Numeric "S1" free 2 4 +0.5)
(lets Numeric "S2" free 2 5 +0.9)

(define (dec n)
  (- n 1))
(define (inc n)
  (+ n 1))
(define (invisible p)
  (send p masked)
  p)
(define (scalerot oP C a s)
  (let* ((sP (invisible (Point "" scale oP C s)))
         (rP (invisible (Point "" rotation sP C a))) )
    rP))
(define (Ramo p0 p1 n)
  (Segment "" extremities p0 p1)
  (let* ((left-scale (if (odd? n) S1 S2))
         (left-angle A1)
         (right-scale (if (odd? n) S2 S1))
         (right-angle A2) )
    (if (> n 0)
      (begin
        (Ramo p1 (scalerot p0 p1  left-angle  left-scale) (dec n))
        (Ramo p1 (scalerot p0 p1 right-angle right-scale) (dec n))))))
        
(lets Point "A" free -3 0)
(lets Point "B" free -3 2)
(Ramo A B 6)

Curva frattale
An image

Hai domande o commenti da fare?
Vuoi partecipare alla stesura di parti di questo manuale?
-> Contatta Andrea Centomo all'OFSET (acentomo at ofset dot org) o aggiungiti alla lista per la diffusione di DR. GEO.

Galleria di esempiPoligoni regolariFrattaliDr. Geo's mascot