Extraction minière au sein de l’Himalaya

Art

Le premier projet de la classe de 1ère NSI est « Image générative ». Ce projet consiste en la création d’une image sur thème libre. Pour notre image, on a choisi d’aborder les thèmes de la montagne, du ciel et de la mine. Nous avons voulu représenter ainsi, une mine présente au sein de la chaine de montagnes de l’Himalaya sous un ciel étoilé de nuit avec une lune en fond venant se glisser derrière la montagne.

Le fond

Afin de réaliser le fond de notre image, nous avons voulu réaliser un fond dégradé du bleu foncé vers le bleu clair afin de représenter la nuit tombante.

def fond():
    for i in range(720):
        r = 173 - round((i / (720 / 173)))  
        v = 216 - round((i / (720 / 216))) 
        b = 230 - round((i / (720 / 102)))
        pencolor(r, v, b)
        forward(1280)
        goto(-640, -360 + i)

fond()

Les étoiles

Ensuite pour réaliser l’ambiance de nuit tombante, nous avons fait le choix de rajouter des étoiles. Pour cela nous avons utilisé le module « randint » nous permettant de placer les étoiles de manière aléatoire.

def etoile():
    pencolor("#fff7cd")
    fillcolor("#fff7cd")
    for _ in range(130):
        penup()
        x = randint(-650, 650)
        y = randint(-360, 360)
        goto(x, y)
        pendown()
        begin_fill()
        circle(randint(1, 4))
        end_fill()
etoile()

Lune

Pour rester dans cette ambiance de nuit tombante nous avons rajouté une lune en fond à laquelle nous avons rajouté des taches pour que celle ci soit plus fidèle à la vrai lune.

def lune():
    penup()
    goto(10,-50)
    color("#EEF0F1")
    fillcolor("#EEF0F1")
    begin_fill()
    circle(220)
    end_fill()
lune()

def taches(x, y,z):
    for i in range(15):
        penup()
        goto(x, y)
        pendown()
        shapesize(z)
        pencolor("#000000")  
        fillcolor("#a4a4a4")  
        begin_fill()  
        circle(z)
        end_fill()
taches(100, 200,20)
taches(-110, 100,50)
taches(-90, 250,30)
taches(0, 200,15)
taches(70, 75,42)
taches(70, 270,24)
taches(150, 100,12)

Les montagnes

Ici nous avons créer des montagnes sous forme de chaine où logera par la suite notre grotte minière. Nous avons rajouter un rectangle afin de combler le trou entre les montagnes même si cela est peux conventionnel.

def triangle(x,y,z):
    penup()
    goto(x,y)
    pendown()
    pensize(4)
    color("#757575") 
    fillcolor("#757575")
    begin_fill()
    for i in range(3):
        forward(500)
        left(120)    
    end_fill()
triangle(-235,-200,10)
triangle(70,-350,10)
triangle(-600,-350,10)
triangle(-450,-400,10)
triangle(-800,-500,10)
triangle(310,-500,10)
def rectangle():
    penup()
    goto(-110,-250)
    pendown()
    pensize(150)
    pencolor("#757575")
    forward(400) #Peu conventionnel
rectangle()

Ombre des montagnes

Afin de rajouter du réalisme à notre image nous avons décidé de rajouter une ombre derrière les montagnes en suivant presque le même schéma que celles ci.

def ombre(x,y,z):
    penup()
    goto(x,y)
    pendown()
    pensize(4)
    color("#323232") 
    fillcolor("#323232")
    begin_fill()
    for i in range(3):
        forward(500)
        left(120)    
    end_fill()
ombre(-280,-200,10)
ombre(30,-350,10)
ombre(-640,-350,10)
ombre(-490,-400,10)
ombre(-840,-500,10)
ombre(270,-500,10)

Le sol

Nous avons décidé de faire un sol dégradé marron foncé afin de rappeler la couleur de la terre et aussi se rapprocher du modèle réel présent dans la réalité.

def sol():
    for i in range(107):
        r = round(101 + (30 - 60) * (i / 107))  
        v = round(67 + (1 - 20) * (i / 107))    
        b = round(33 + (1 - 20) * (i / 107))    
        pencolor(r, v, b)                     
        forward(1280)                        
        goto(-640, -360 + i)                
sol()

La grotte

La grotte était notre idée principale ainsi nous avons décidé de la mettre au centre. Pour marquer la profondeur de celle ci nous avons choisi le noir pour récréer l’obscurité de la grotte.

def entree(x,y,z):
    penup()
    goto(x,y)
    pendown()
    pensize(4)
    color("#000000") 
    fillcolor("#000000")
    begin_fill()
    for i in range(3):
        forward(z)
        left(120)    
    end_fill()

entree(-120,-253,150)
entree(-90,-253,165)
entree(40,-253,50)

La neige

Toujours dans la dynamique de ressemblance à la réalité, nous avons fait le choix de rajouter au sommet des montagnes de la neige comme sur les sommet de l’Himalaya. Pour cela nous avons encore utilisé la fonction triangle que nous avons préalablement définie.

def neige(x,y,z,w):
    penup()
    goto(x,y)
    pendown()
    pensize(4)
    color("#f7f7f7") 
    fillcolor("#f7f7f7")
    begin_fill()
    for i in range(3):
        forward(z)
        left(w)    
    end_fill()
neige(-49,120,130,120)
neige(-50,120,30,-120)
neige(-20,120,50,-120)
neige(35,120,15,-120)
neige(50,120,30,-120)

neige(273,0,95,120)
neige(273,0,30,-120)
neige(300,0,15,-120)
neige(310,10,40,-120)
neige(350,0,15,-120)

neige(-397,0,95,120)
neige(-397,0,30,-120)
neige(-340,0,15,-120)
neige(-365,5,25,-120)
neige(-328,0,25,-120)

neige(-225,-10,50,120)
neige(-225,-10,10,-120)
neige(-210,-10,20,-120)
neige(-190,-10,15,-120)

neige(-575,-110,50,120)
neige(-575,-110,10,-120)
neige(-560,-110,15,-120)
neige(-548,-107,10,-120)
neige(-540,-110,15,-120)

neige(535,-110,50,120)
neige(535,-110,18,-120)
neige(555,-110,9,-120)
neige(565,-110,20,-120)

Relief

Toujours dans une démarche de réalisme, nous avons voulu apporter un relief à, la montagne paraissant plate. Pour cela nous avons simplement tracé des traits prolongeant certaines arrête des montagnes.

def delimitation(x,y,z,w):
    pencolor("#2c2c2c")
    pensize(3)
    penup()
    goto(x,y)
    pendown()
    goto(z,w)
delimitation(-60,110,-208,-150)
penup()
delimitation(-402,0,-519,-210)
penup()
delimitation(270,-1,145,-210)

Chariot

En accord avec notre première idée, nous avons rajouté un chariot à la mine pour que de un l’image soit plus compréhensible mais aussi pour venir rajouter des détail à notre image. Nous avons fait le choix également de rajouter des rails pour celui ci.

Problèmes rencontrés

Nous avons eu de nombreux problèmes durant la création de notre image. En effet lors de faire la lune nous avions eu pour idée de rendre les taches aléatoire avec le module « randint » , mais cela n’allais pas car les taches se superposais et ne changeais pas de taille. Aussi lorsque nous avons fais le wagon nous réfléchissions a un moyen de le remplir réalistement mais nous n’avons pas trouver alors nous avons fais le choix de placer de simples triangles.

Sources

Afin de réaliser notre image, nous avons utilisé plusieurs sources : Tout d’abord nous avons utilisé chat gpt afin de déboguer certaines parties de notre code, ensuite nous avons utilisé le forum « stack overflow » pour trouver notre fond et réaliser notre dégradé, enfin nous avons utilisé le site « python guides » pour nous renseigner sur des commandes notamment sur l’utilisation du module « random » lors de la création des étoiles.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.