---
# System prepended metadata

title: Módulos geométricos

---


# Grupo de estudos em Python

## Módulos geométricos

- Truchet https://abav.lugaralgum.com/material-aulas/Processing-Python-py5/truchet.html
    - Vídeos https://gist.github.com/villares/b596399b098ea0ebeb8e2d4ad0662df8
    
- Exportação vetorial https://abav.lugaralgum.com/material-aulas/Processing-Python-py5/exportando_svg.html

## `hackmd.io/@sesc-av-paulista/estudos-em-python-13-marco`

```python=

def setup():
    size(500, 500)
    
    for i in range(10):  # i vai de 0 até 9
        x = i * 50
        square(x, 0, 50) # x, y, d    


```

![image](https://hackmd.io/_uploads/Bk9Ueog21x.png)

![image](https://hackmd.io/_uploads/HkYCeog31x.png)

```python=

def setup():
    size(500, 500)
    num = 8
    lado_quadrado = width / num  # width é uma global mágica
    for j in range(num):
        y = j * lado_quadrado 
        for i in range(num):  # i vai de 0 até 99
            x = i * lado_quadrado
            square(x, y, lado_quadrado) # x, y, d    
    


```

![image](https://hackmd.io/_uploads/ByxM5seh1g.png)


```python=

def setup():
    size(500, 500)
    rect_mode(CENTER) # quadrados desenhados pelo centro
    num = 8
    tam_celula = width / num  # width é uma global mágica
    for j in range(num):
        y = j * tam_celula + tam_celula / 2
        for i in range(num):  # i vai de 0 até 99
            x = i * tam_celula + tam_celula / 2
            sorteio = random_choice((0, 1, 2, 3))
            modulo(x, y, tam_celula, sorteio) # x, y, d    
    
def modulo(x, y, tam, rot):
    if rot == 0:    
        fill(0, 255, 0)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        fill(0, 0, 200)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    elif rot == 1:
        fill(0, 255, 0)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)
        fill(0, 0, 200)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)
    elif rot == 2:
        fill(0, 0, 200)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        
        fill(0, 255, 0)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    else:
        fill(0, 0, 200)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)        
        fill(0, 255, 0)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)
        
    

```

![image](https://hackmd.io/_uploads/B1M3oogh1l.png)


```python=
COR_A = color(200, 0, 0)
COR_B = color(200, 200, 0)

def setup():
    size(500, 500)
    rect_mode(CENTER) # quadrados desenhados pelo centro
    num = 8
    tam_celula = width / num  # width é uma global mágica
    for j in range(num):
        y = j * tam_celula + tam_celula / 2
        for i in range(num):  # i vai de 0 até 99
            x = i * tam_celula + tam_celula / 2
            r = (i * j) % 4
            modulo(x, y, tam_celula, r) # x, y, d    
    
def modulo(x, y, tam, rot):
    if rot == 0:    
        fill(COR_A)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        fill(COR_B)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    elif rot == 1:
        fill(COR_A)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)
        fill(COR_B)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)
    elif rot == 2:
        fill(COR_B)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        
        fill(COR_A)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    else:
        fill(COR_B)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)        
        fill(COR_A)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)
        

```


Aleatório com tecla para fazer um novo

```python=
COR_A = color(200, 0, 0)
COR_B = color(200, 200, 0)

def setup():
    size(500, 500)
    rect_mode(CENTER) # quadrados desenhados pelo centro
    #frame_rate(5)
    no_loop()
    
    
def draw():
    num = 8
    tam_celula = width / num  # width é uma global mágica
    for j in range(num):
        y = j * tam_celula + tam_celula / 2
        for i in range(num):  # i vai de 0 até 99
            x = i * tam_celula + tam_celula / 2
            r = random_choice((0, 1, 2, 3))
            modulo(x, y, tam_celula, r) # x, y, d    
    
def modulo(x, y, tam, rot):
    if rot == 0:    
        fill(COR_A)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        fill(COR_B)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    elif rot == 1:
        fill(COR_A)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)
        fill(COR_B)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)
    elif rot == 2:
        fill(COR_B)
        triangle(x - tam / 2, y - tam / 2,
                 x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2)
        
        fill(COR_A)
        triangle(x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2,
                 x + tam / 2, y + tam / 2)
    else:
        fill(COR_B)
        triangle(x - tam / 2, y + tam / 2,
                 x + tam / 2, y + tam / 2,
                 x + tam / 2, y - tam / 2)        
        fill(COR_A)
        triangle(x - tam / 2, y + tam / 2,
                 x - tam / 2, y - tam / 2,
                 x + tam / 2, y - tam / 2)

def key_pressed():
    save_frame('###.png')
    redraw()
    
    
    

```