Hallo,
versuche gerade ein Pythagorasbaum zu code aber irgrendwie komm ich noch nicht sehr weit das ganze auch rekursiv zu machen.
hat villeicht jemand ne Idee wie man son Baum coden kann?
Wäre um jede Hilfe sehr erfreut.
Hier noch mal ein Bild wies aussehen soll: de.wikipedia.org/wiki/Bild:Pyt…s_tree_construct_5of5.png
die Ansätze und die Hilfprozeduren sowie den ersten schritt zum erstellen des ersten Quadraten mit Dreiceck hab ich ja schon..
hier die Ansätze
(turtles)
(define ALPHA 30)
(define BETA (- 90 ALPHA))
;; approximations for the length of the cathetus,
;; consumes the length of the hypothenusis
;; get-b: num -> num
;; get-a: num -> num
(define (get-b c)
(* c (sin (* (/ ALPHA 180) 3.14))))
(define (get-a c)
(* c (sin (* (/ BETA 180) 3.14))))
;; purpose: paints a triangle with the given base length x and given angle ALPHA
;; and returns the turtle to its starting position
;; contract: triangle: num -> does not matter
(define (paintTriangle a)
(list
(draw a)
(turn (+ 90 ALPHA))
(draw (get-b a) )
(turn 90)
(draw (get-a a))
(turn (- 180 ALPHA))))
(define (pythagoras-step a)
(list
(draw a)
(turn 90)
(draw a)
(turn 90)
(draw a)
(turn 180)
(paintTriangle a)
(turn -90)
(draw a)
(turn 180)
(move a)
(turn -60)
))
fehlt nur noch der eigentliche Baum mit der Rekursion...:)
versuche gerade ein Pythagorasbaum zu code aber irgrendwie komm ich noch nicht sehr weit das ganze auch rekursiv zu machen.
hat villeicht jemand ne Idee wie man son Baum coden kann?
Wäre um jede Hilfe sehr erfreut.
Hier noch mal ein Bild wies aussehen soll: de.wikipedia.org/wiki/Bild:Pyt…s_tree_construct_5of5.png
die Ansätze und die Hilfprozeduren sowie den ersten schritt zum erstellen des ersten Quadraten mit Dreiceck hab ich ja schon..
hier die Ansätze
(turtles)
(define ALPHA 30)
(define BETA (- 90 ALPHA))
;; approximations for the length of the cathetus,
;; consumes the length of the hypothenusis
;; get-b: num -> num
;; get-a: num -> num
(define (get-b c)
(* c (sin (* (/ ALPHA 180) 3.14))))
(define (get-a c)
(* c (sin (* (/ BETA 180) 3.14))))
;; purpose: paints a triangle with the given base length x and given angle ALPHA
;; and returns the turtle to its starting position
;; contract: triangle: num -> does not matter
(define (paintTriangle a)
(list
(draw a)
(turn (+ 90 ALPHA))
(draw (get-b a) )
(turn 90)
(draw (get-a a))
(turn (- 180 ALPHA))))
(define (pythagoras-step a)
(list
(draw a)
(turn 90)
(draw a)
(turn 90)
(draw a)
(turn 180)
(paintTriangle a)
(turn -90)
(draw a)
(turn 180)
(move a)
(turn -60)
))
fehlt nur noch der eigentliche Baum mit der Rekursion...:)