Astronomie : Voyage dans les étoiles

Art

Observer les étoiles, c’est contempler l’immensité et percer les mystères de l’Univers : « À travers ses télescopes, l’astronomie sonde l’immensité de l’espace, révélant des mondes lointains et des mystères insoupçonnés. Elle nous invite à explorer l’infini, à contempler les astres, les étoiles et à comprendre l’origine de l’univers, suscitant l’émerveillement et la soif de connaissance « (Extrait du livre « Le grand guide de l’astronomie « )

Qu’est ce que l’Astronomie ?

L’astronomie… c’est comme une énorme chasse au trésor dans le ciel, mais avec des étoiles, des planètes et des galaxies ! On apprend à étudier les astres, les étoiles, à comprendre comment elles naissent et évoluent, on étudie aussi leurs propriétés physiques et chimiques.

Pourquoi avons-nous choisi le thème de l’astronomie ?

Tout simplement parce que l’Astronomie est un sujet fascinant, qui captive. Cette science permet d’explorer l’immensité de l’univers, les mystères des étoiles, des planètes et des galaxies. Choisir l’astronomie pour un projet offre une opportunité de découverte, d’apprentissage et d’inspiration.

Les différents problèmes...

Bien évidemment, il y a toujours des problèmes rencontrés lors d’un DM.

Le premier problème a été la communication. En effet, travailler en groupe est toujours compliqué…

Le deuxième problème a été d’assembler les scripts, un message d’erreur apparaissait à chaque fois. La plupart de ces erreurs étaient l’orthographe. En effet, chaque professionnel fait des erreurs…

Ensuite nous avons eu pour les montagnes un bug graphique sur le remplissage qui n’apparaissait que sur le dossier PNG ce qui rendait assez lourd le script sur les montagnes avec « begin_fill() » et « end_fill() »

Analyse du script

Afin d’analyser ce script, nous allons le découper en plusieurs parties, correspondantes aux différentes étapes.

1-Avant de détailler chaque fonction, il faut s’assurer que le script comporte tous les modules nécessaire à la création de l’image.

from turtle import *
from PIL import Image, ImageDraw
from random import randint

titre = "Astronomie - construite avec turtle"


title(titre + " | Au lycée, la meilleure spécialité, c'est la spé NSI")

setup(1280, 720, 0, 0)
speed(0)
goto(0,-200)

On importe les modules PIL (installés auparavant) afin de travailler avec des images, turtle afin de dessiner des formes géométriques sur l’image, et enfin randint afin de générer des nombres aléatoires. Après avoir importé tous ces modules, on définie un titre, ici Astronomie. Ensuite, on définit les titres de la fenêtre graphique. On définit alors la résolution de l’image, ici 1280×720 pixels. On définit aussi la vitesse. Enfin, on place la tortue à la position de départ.

2- Le fond

for i in range(hauteur_degrade):
    bleu_fonce = 0.1 + (i / hauteur_degrade) * 0.8 
    ciel.color(0, 0, bleu_fonce)
    ciel.penup()
    ciel.goto(x, y)
    ciel.pendown()
    ciel.forward(largeur_degrade)
    y -= 1

Afin de réaliser le fond de l’image, nous avons décidé de commencer la réalisation de l’image par une fenêtre noire similaire au lever d’un rideau, nous avons ensuite réalisé un dégradé de bleu similaire à un coucher de soleil à l’aide de chatgpt.

3-Les étoiles

def etoiles():
    for _ in range(42):
        speed(0)
        penup()
        x = randint(-600, 600)
        y = randint(-300, 300)
        penup()
        goto(x, y)
        pendown()
        dot(8, "orange")
        
etoiles()

Ne pas faire d’étoile sur une image qui porte sur l’Astronomie, ce n’est pas de l’Astronomie ! Afin de réaliser des étoiles aléatoirement, nous avons utilisé randint. Nous avons bien évidemment pensé a Halloween et pour cela, nous avons réalisé des étoiles en orange.

4-Les astres

Nous avons réalisé deux astres : le soleil et la lune.

def planète():
    speed(0)
    penup()
    goto(300, 250)  
    pendown()
    color("red")
    begin_fill()
    circle(50)  
    end_fill()
hideturtle()
planète()
penup()
goto(0,-200)
pendown()
fillcolor("white")
begin_fill()
circle(180)
end_fill()

Toujours dans le thème d’Halloween, nous avons décidé de faire le soleil rouge.

5-Le sol

Les montagnes, ça ne volent pas, et pour cela, nous avons mis un sol qui est en fait un rectangle en turtle.

def sol():
         for i in range(2):
             color("black")
             forward(1280) 
             left(90)
             forward(250)
             left(90)
sol()

6- Les montagnes :

Elles sont seulement constituées de triangle les uns à la suite des autres par une boucle. Nous avons mis à certains moments une légère inclinaison du triangle dans la boucle afin de créer un effet de montée

def triangle():
    forward (150) 
    left (120)
    forward (150)
    left (120)
    forward (150)


goto(-640,-200)

def montagne_plane():
         for i in range(50):
             begin_fill()
             triangle()
             left(300)
             backward(1)
             left(180)
             end_fill()
begin_fill()             
montagne_plane()
end_fill()
def montagne_ascendante1():
        for i in range(50):
             begin_fill()
             triangle()
             left(300)
             backward(4)
             left(180)
             left(0.2)
             end_fill()
montagne_ascendante1()

def montagne_ascendante2():
    for i in range(10):
        begin_fill()
        triangle()
        left(300)
        backward(10)
        left(180)
        left(2)
        end_fill()
montagne_ascendante2()

begin_fill() 
#triangle venant juste apres la montée
right(25)
goto(-310,-130)
triangle()
# recalibrage afin de pouvoir continuer l'algorithme
left(300)
backward(10)
left(180)
left(2)
end_fill()
# je fait redescendre legerement la montagne
goto(-290,-200)
for i in range(10):
     begin_fill()
     triangle()
     left(300)
     backward(4)
     left(180)
     end_fill()
for i in range(6):
     begin_fill()
     triangle()
     left(300)
     backward(4)
     right(5)
     end_fill()


left(8)
def montagne_ascendante3():
  for i in range(40):
       begin_fill()
       triangle()
       left(300)
       backward(7)
       left(180)
       left(1)
       end_fill()
montagne_ascendante3()
        
begin_fill()
right(25)
goto(150,-130)
triangle()

goto(150,-220)
left(300)
backward(10)
left(180)
left(1)
end_fill()


for i in range(2):
      montagne_ascendante1()

L’image finale

Le fichier.py