Skip to content

Instantly share code, notes, and snippets.

@cosmith
Created March 19, 2019 23:01
Show Gist options
  • Save cosmith/98b8442c754b74673bf71ed542aef5e5 to your computer and use it in GitHub Desktop.
Save cosmith/98b8442c754b74673bf71ed542aef5e5 to your computer and use it in GitHub Desktop.
# Render this specimen with DrawBot3: http://www.drawbot.com/
# Import modules:
import math
# Définitions des variables de base, taille de l'image (W,H) et marge M
WIDTH, HEIGHT = 512, 512
MARGIN = 64
NUM_IMAGES = 24
# Afficher les infos de la police dans la console
font("fonts/GarajeGX.ttf")
for axis, data in listFontVariations().items():
print((axis, data))
# ici on récupère les infos :
# ('wght', {'name': 'Weight', 'minValue': 20.0, 'maxValue': 100.0, 'defaultValue': 20.0})
# ('wdth', {'name': 'Width', 'minValue': 70.0, 'maxValue': 350.0, 'defaultValue': 70.0})
# ('slnt', {'name': 'Slant', 'minValue': 0.0, 'maxValue': 200.0, 'defaultValue': 0.0})
# itérer sur le nombre d'images
for frame in range(NUM_IMAGES):
newPage(WIDTH, HEIGHT) # création de l'image
fill(0, 0, 0) # choisir la couleur noire
rect(0, 0, WIDTH, HEIGHT) # dessiner un rectangle qui remplit tout
# style de texte de base
stroke(None) # pas de contour
fill(1, 1, 1) # choisir la couleur blanche
# calcul du paramètre qu'on veut faire varier en fonction du numéro de l'image
angle = (frame/NUM_IMAGES)*360
varAnim = (cos(radians(angle))*0.5+0.5)*100 # valeur entre 0 et 100 qui varie pendant l'animation
print("frame = ", frame)
print("angle = ", angle)
print("varAnim = ", varAnim)
print(" ")
# on définit les paramètres qui vont varier
# wght = 20 + varAnim * 0.8 # entre 20 et 100
wdth = 70 + varAnim * 2.8 # entre 70 et 350
slnt = varAnim * 2 # entre 0 et 200
# itérer 6 fois dans la même image
for i in range(6):
# dessiner le texte
fill(1, 1, 1) # mettre la couleur à 1,1,1 (blanc)
font("fonts/GarajeGX.ttf") # prendre la police
fontSize(30) # choisir la taille du texte
# choisir la variante avec ce qui a été calculé au dessus, sauf pour wght ou on se base sur
# le numéro du mot dans l'image pour faire varier la graisse au sein de l'image
wght = 20 * (i + 1)
fontVariations(slnt=slnt, wght=wght, wdth=wdth)
x = WIDTH / 2 - MARGIN
y = MARGIN + i * 64 + 10
text("GARAJE", (x, y)) # dessiner le texte à la position x,y
# Enregistrer le GIF
saveImage("basic-animated.gif")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment