Aller au contenu

🐢 Vertige de carrés remplis⚓︎

Challenge, construire la figure suivante :

Indices

  1. Le coefficient de réduction d'un carré à l'autre est \(\dfrac1{\sqrt2}\).
  2. On pourra utiliser un booléen indiquant si le carré en court est rouge.
  3. On pourra utiliser une épaisseur de 5% du côté du carré.
  4. Pour dessiner un carré de côté l avec une couleur, on pourra faire
🐍 Script Python
def carre_plein(l, couleur):
    "Dessine un carré de côté l, rempli avec couleur"
    turtle.fillcolor(couleur)
    turtle.begin_fill()
    for _ in range(4):
        turtle.forward(l)
        turtle.left(90)
    turtle.end_fill()
Réponse
🐍 Script Python
import turtle
from math import sqrt

k = 1 / sqrt(2)

def carre_plein(l, couleur):
    "Dessine un carré de côté l, rempli avec couleur"
    turtle.fillcolor(couleur)
    turtle.begin_fill()
    for _ in range(4):
        turtle.forward(l)
        turtle.left(90)
    turtle.end_fill()

def carres_bi(l, est_rouge, n):
    if n > 0:
        turtle.pensize(l * 0.05)
        if est_rouge:
            couleur = 'red'
        else:
            couleur = 'blue'

        carre_plein(l, couleur)
        turtle.penup()
        turtle.forward(l / 2)
        turtle.left(45)
        turtle.pendown()
        carres_bi(l * k, not est_rouge, n - 1)

turtle.pencolor('black')
turtle.speed(11)
turtle.goto(-200, -200)
carres_bi(400, True, 10)

turtle.done()