Article épinglé

mercredi 24 juillet 2019

Python et dessin - la magie des algorithmes

Florilège de scripts pour Turtle

 Segments de couleur alternée puis rotation de 90° +1°

Script

from turtle import *
import time
setup(500,500)
bgcolor('black')
time.sleep(7)
speed(0)
ht()
size=0
for i in range(1000):
    if i%2==0:
        color('red')
    else:
        color('white')
    fd(size)
    rt(91)
    size+=1
-----------

Déplacement de 4 pixels puis choix aléatoire de faire le prochain pas vers la gauche ou la droite par rapport à votre trait précédent de 4 pixels

Script

from turtle import *
from random import *
setup(500,500)
n=1000
u=4

for k in range(n):
    forward(1*u)
    a=randint(0,1)
    if (a==0) :
        left(90)
    else :
        right(90)
-----------
Fractal avec des triangles

Script

import turtle
PROGNAME = 'Sierpinski Triangle'
#Credits: This code was written by editing the code from http://www.lpb-riannetrujillo.com/blog/python-fractal/

myPen = turtle.Turtle()
myPen.ht()
myPen.speed(5)
myPen.pencolor('orange')

points = [[-175,-125],[0,175],[175,-125]] #size of triangle

def getMid(p1,p2):
    return ( (p1[0]+p2[0]) / 2, (p1[1] + p2[1]) / 2) #find midpoint

def triangle(points,depth):

    myPen.up()
    myPen.goto(points[0][0],points[0][1])
    myPen.down()
    myPen.goto(points[1][0],points[1][1])
    myPen.goto(points[2][0],points[2][1])
    myPen.goto(points[0][0],points[0][1])

    if depth>0:
        triangle([points[0],
                        getMid(points[0], points[1]),
                        getMid(points[0], points[2])],
                   depth-1)
        triangle([points[1],
                        getMid(points[0], points[1]),
                        getMid(points[1], points[2])],
                   depth-1)
        triangle([points[2],
                         getMid(points[2], points[1]),
                         getMid(points[0], points[2])],
                   depth-1)

# Jouer avec le paramètre du dessous
# chiffre entre 4 et 8
triangle(points,4)
-----------

Spirale

Script

from turtle import *
from math import *
# dessin des axes
home()
penup()
goto(-200,0)
pendown()
fd(400)
penup()
goto(0,-200)
pendown()
left(90)
fd(400)
penup()
home()
pencolor("blue")

long=2
angle=360/2


for i in range(50):
    goto(long*i*cos(angle*i),long*i*sin(angle*i))
    
    pendown()
    dot()
    penup()

Aucun commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)