Memórias 16-bit IV

2024-11-05

"""2024-11-05
Memórias 16-bit IV
Interferências
png
Sketch,py5,CreativeCoding
"""

from collections import deque
from random import shuffle

import py5

from utils import helpers

sketch = helpers.info_for_sketch(__file__, __doc__)

PALETA = [
    "#032035",
    "#120D2D",
    "#1C8EAF",
    "#425AC6",
    "#7EC0E0",
    "#CAC9D1",
    "#D0341E",
    "#F7D744",
    "#F87109",
    "#FDAA08",
]


def setup():
    py5.size(helpers.LARGURA, helpers.ALTURA, py5.P3D)
    py5.background(0)
    py5.no_fill()
    shuffle(PALETA)
    paleta = deque(PALETA)
    py5.ellipse_mode(py5.CORNER)
    py5.no_fill()
    meio_w = py5.width / 2
    meio_h = py5.height / 2
    for angulo in range(0, 361, 45):
        with py5.push_matrix():
            py5.translate(meio_w, meio_h)
            py5.rotate(py5.radians(angulo))
            for idx, raio in enumerate(range(10, 600, 30)):
                diametro = raio * 1.6
                cor = paleta[idx % 2]
                py5.stroke_weight(3)
                py5.stroke(cor)
                py5.ellipse(-meio_w, -meio_h - raio, diametro, diametro)
                paleta.rotate(1)
    helpers.write_legend(sketch=sketch)


def key_pressed():
    key = py5.key
    if key == " ":
        save_and_close()


def save_and_close():
    py5.no_loop()
    helpers.save_sketch_image(sketch)
    py5.exit_sketch()


if __name__ == "__main__":
    py5.run_sketch()