Skip to content

Commit

Permalink
21
Browse files Browse the repository at this point in the history
  • Loading branch information
villares committed Nov 21, 2024
1 parent e704cb2 commit ff4d69d
Show file tree
Hide file tree
Showing 3 changed files with 123 additions and 0 deletions.
Binary file added 2024/sketch_2024_11_21/sketch_2024_11_21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
113 changes: 113 additions & 0 deletions 2024/sketch_2024_11_21/sketch_2024_11_21.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Sketch usando py5 "imported mode", precisa do Thonny + plugin ou sketch runner

formas = []

def setup():
global pos_atual, direcao
size(600, 600)
background(0) # fundo preto
no_stroke()
color_mode(HSB) # Matiz, Sat, Brilho

pos_atual = Py5Vector(0, 0) # v.x, v.y
apontar_direcao(0)
largura_octogono = 200
lado_octogono = largura_octogono / (1 + sqrt(2))

translate(-largura_octogono / 2, -largura_octogono / 2)

andar(lado_octogono / sqrt(2))
#pontos_octogono = []
for i in range(8): # fazer 8 vezes:
andar(lado_octogono)
girar(360 / 8)
#pontos_octogono.append(pos_atual)
triangulo_e_quadrado(lado_octogono)
# desenhar estrela central
# deslocada meio octogono pra baixo e pra direita
ladinho = lado_octogono / (2 + sqrt(2)) # lado quadradinho
girar(90)
andar(largura_octogono - ladinho * sqrt(2) / 2)
girar(-90)
andar(largura_octogono / 2)
andar(ladinho)
pontos_estrela = [] # lista vazia
for i in range(16):
if i % 2 == 0: # se i é par:
girar(-90)
else: # senão:
girar(90 + 45)
andar(ladinho)
pontos_estrela.append(pos_atual)
#circle(pos_atual.x, pos_atual.y, 10)
formas.append(pontos_estrela)

for i in range(4): # 0, 1, 2, 3
x = i * largura_octogono
for j in range(4): # 0, 1, 2, 3
y = j * largura_octogono
desenha_todas_as_formas(x, y)

save(__file__[:-3] + '.png')

def quadradinho(lado):
pontos_quadradinho = []
for i in range(4): # repita 4 vezes:
andar(lado)
girar(90)
pontos_quadradinho.append(pos_atual)
formas.append(pontos_quadradinho)

def triangulo_e_quadrado(lado_octogono):
ladinho = lado_octogono / (2 + sqrt(2)) # lado quadradinho
pontos_triangulo = [pos_atual]
girar(45)
andar(lado_octogono / sqrt(2))
pontos_triangulo.append(pos_atual)
#circle(pos_atual.x, pos_atual.y, 10)
quadradinho(ladinho)
girar(-90)
andar(lado_octogono / sqrt(2))
pontos_triangulo.append(pos_atual)
girar (-90-45)
#andar(lado_octogono)
andar(ladinho)
pontos_triangulo.append(pos_atual)
#circle(pos_atual.x, pos_atual.y, 10)
girar(-45)
andar(ladinho)
pontos_triangulo.append(pos_atual)
girar(90)
andar(ladinho)
#circle(pos_atual.x, pos_atual.y, 10)
pontos_triangulo.append(pos_atual)
girar(-45)
#circle(pos_atual.x, pos_atual.y, 10)
pontos_triangulo.append(pos_atual)
andar(ladinho)
# fim do lado com dente
girar(180)
formas.append(pontos_triangulo)

def andar(d):
global pos_atual
pos_atual = pos_atual + Py5Vector.from_heading(direcao) * d

def apontar_direcao(deg):
global direcao
direcao = radians(deg)

def girar(deg):
global direcao
direcao += radians(deg)

def desenha_todas_as_formas(x, y):
with push_matrix():
translate(x, y)
for i, shp in enumerate(formas):
fill(128 + i // 8 * 15, 255, 200)
desenha_forma(shp)

def desenha_forma(pts):
with begin_closed_shape():
vertices(pts)
10 changes: 10 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ Here are listed some of the tools I have been using more recently:
2024 \| [<b>2023</b>](2023.md) \| [<b>2022</b>](2022.md) \| [<b>2021</b>](2021.md) \| [<b>2020</b>](2020.md) \| [<b>2019</b>](2019.md) \| [<b>2018</b>](2018.md)


---

### sketch_2024_11_21

![sketch_2024_11_21](https://raw.githubusercontent.com/villares/sketch-a-day/main/2024/sketch_2024_11_21/sketch_2024_11_21.png)

[sketch_2024_11_21](https://github.com/villares/sketch-a-day/tree/main/2024/sketch_2024_11_21) [[py5](https://py5coding.org/)]



---

### sketch_2024_11_20
Expand Down

0 comments on commit ff4d69d

Please sign in to comment.