---
# System prepended metadata

title: Grupo de estudos em Python - Tipografia Experimenta - 12 de junho de 2025

---

# Tipografia experimental

# Grupo de estudos em Python 
## Sesc Av. Paulista - 12 de junho de 2025

# Tipografia experimental 

## `hackmd.io/@sesc-av-paulista/estudos-em-python-12-junho`


https://pad.riseup.net/p/sesc-python-12


Conversa de corredor: Palestra do Cory Doctorow https://www.youtube.com/watch?v=ydVmzg_SJLw&ab_channel=PyConUS

Fontes 

```python
# lista das fontes instaladas no sistema
import py5
for f in py5.Py5Font.list():
    if 'courier' in f.lower():
        print(f)
        
# Para usar uma fonte https://py5coding.org/reference/sketch_create_font.html
def setup():
    size(400, 400)
    #no_smooth()
    f = create_font('Tomorrow Bold', 48) # nome da fonte instalada ou...
    # ... caminho de um arquivo .ttf ou .otf
    text_font(f)
    text_size(24)
    #text_leading(20)
    text('Opa,\nEneas!', 0, 300)
    line(10, 10, 100, 100)
```


## Para extrair os contornos da fonte
https://raw.githubusercontent.com/villares/villares/refs/heads/main/shapely_helpers.py
        
STL https://github.com/py5coding/py5generator/discussions/620
        
## Tela auxiliar

```python
def setup():
    size(400, 400)
    background(0, 200, 0)
    #no_smooth()
    f = create_font('Tomorrow Bold', 48)    
    ta = create_graphics(width, height)
    ta.begin_draw()
    ta.background(100, 0, 0) # para demo, sem isso o fundo é transparente
    ta.text_font(f)
    ta.text_align(CENTER, CENTER)
    ta.text('HELLO', 200, 200)    
    ta.end_draw()
    image(ta, 50, 50)

```

Texto animado final

```python=

import py5_tools

def setup():
    global ta
    size(600, 400)
    #no_smooth()
    f = create_font('Tomorrow Bold', 48)    
    ta = create_graphics(width, height)
    ta.begin_draw()
    #ta.background(100, 0, 0)
    ta.text_font(f)
    ta.text_size(140)
    ta.text_leading(120)
    ta.text_align(CENTER, CENTER)
    ta.text('HELLO\nSesc', width / 2, height / 2)    
    ta.end_draw()
#     fill('#FFFFFF00') # transparente
#     square(100, 100, 100)
#     fill('#FFFFFFFF')  # branco
#     square(200, 100, 100)
    py5_tools.animated_gif('out.gif', duration=0.1, frame_numbers=range(1, 11))

def draw ():
    background(100)
    #image(ta, 50, 50) # para debug
    no_stroke()
    for x in range(0, width, 5):
        for y in range(0, height, 5):
            px = ta.get_pixels(x, y)
            # -1 == py5.color(255) >>> True
            if px == color(255):
                fill(random(255), random(255), 128)
                circle(x, y, 5)








