Una costruzione classica riguardante i numeri irrazionali e nota come Spirale di Teodoro permette di costruire geometricamente le radici quadrate dei numeri interi a partire da un triangolo rettangolo isoscele avente cateti di lunghezza unitaria.
Consideriamo il triangolo OAB di figura in cui OA=1:
Per il teorema di Pitagora si ha allora che OB ha lunghezza pari a radice quadrata di 2. Se ora, come in figura, si costruisce un nuovo triangolo rettangolo, retto in B, con cateti OB e BC, di cui l'ultimo di lunghezza unitaria;
sempre per il teorema di Pitagora è chiaro che l'ipotenusa OC di OBC ha lunghezza radice quadrata di 3. Iterando il procedimento si ottengono facilmente tutte le radici quadrate dei numeri naturali.
La natura iterativa della costruzione si presta ad un trattamento tramite FSD. Consideriamo allora il seguente codice Scheme:
(new-figure "Triangoli") (define (triangle p1 p2 p3 n) (let* ((s1 (Segment "" extremities p1 p2)) (s2 (Segment "" extremities p2 p3)) (s3 (Segment "" extremities p3 p1)) (pe (Line "" orthogonal p3 s3)) (ci (Circle "" center-segment p3 s2)) (p4 (Point "" intersection2 pe ci))) (send pe masked) (send ci masked) (send p4 masked) (if (> n 0) (triangle p1 p3 p4 (- n 1))))) (lets Point "O" free 0 0) (lets Point "A" free -1 0) (lets Point "B" free -1 1) (triangle O A B 15)
Il triangolo di partenza è definito attraverso le coordinate esclusivamente per comodità. Il codice è la trascrizione letterale del procedimento iterativo descritto sopra. Una volta valutato da DR. GEO viene restituita la figura seguente:
L'ipotenusa di ogni triangolo ha lunghezza eguale alla radice quadrata di un numero naturale compreso tra 2 e 17.