Arbres Fractals P50324


Statement
 

pdf   zip

Voleu pintar en Python arbres fractals tant xulos com aquest?

Per pintar un arbre de n1n\ge1 nivells de mida dd, cal pintar el seu tronc de mida dd, la seva branca esquerra i la seva branca dreta, ambdues com a arbres de n1n-1 nivells i mida 34d\frac34 d, i simètriques respecte del tronc amb un angle de 2α2\alpha graus entre elles. Un arbre de zero nivells és buit.

Per exemple, aquests són els arbres (de mida 100) amb 1, 2, 3, 4, 5 i 6 nivells quan α=30\alpha=30:

1      

4      

Entrada

A l’entrada, es dónen tres valors: un natural nn amb el nombre de nivells de l’arbre, un real positiu dd amb la seva mida, i un real α\alpha amb l’angle (en graus) entre les seves branques.

Sortida

El programa ha de dibuixar un arbre d’nn nivells, mida dd i angle α\alpha.

2

Exemple d’entrada 1

4
100
30

Exemple de sortida 1

2

Exemple d’entrada 2

5
200
90

Exemple de sortida 2

Recordatori

Recordeu que Python ofereix un mòdul turtle que permet pintar images amb una tortuga que es desplaça. Les úniques operacions que us calen són turtle.forward(d) que avança la tortuga d unitats, turtle.backward(d) que recula la tortuga d unitats, turtle.right(a) que gira la tortuga a graus a la dreta i turtle.left(a) que gira la tortuga a graus a l’esquerra.

Per exemple, aquest programa pinta un aborrit quadrat:

import turtle
import jutge

d = jutge.read(float)
for i in range(4):
    turtle.forward(d)
    turtle.right(90)

Important

Aquest problema no té jocs de proves al Jutge. Per tant, qualsevol solució serà acceptada: semàfor verd! Això no vol dir que sigui bona ni dolenta, el vostre professor ho corregirà.

Information
Author
Jordi Petit
Language
Catalan
Official solutions
Python
User solutions
Python