villares 2020-05-12 22:24:00 -03:00
rodzic f9d3ae7be7
commit ba7e6541d4
3 zmienionych plików z 76 dodań i 0 usunięć

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 511 KiB

Wyświetl plik

@ -0,0 +1,70 @@
arrastando = -1 # -1 quer dizer nenhum círculo sendo arrastado
circulos = [] # lista com coordenadas e tamanhos dos círculos
NUM_CIRCULOS = 6
def setup():
size(400, 400)
strokeWeight(3)
colorMode(HSB)
sorteia_circulos(NUM_CIRCULOS)
def draw():
background(200)
# Queremos uma lista invertida da enumeração dos círculo
i_circulos = list(enumerate(circulos))[::-1]
# De forma a desenhar a lista do último para o primeiro
for i, circulo in i_circulos:
x, y, d = circulo
if i == arrastando:
stroke(0)
else:
stroke(255)
fill(d - 15, 255, 255, 200)
ellipse(x, y, d, d)
def keyPressed():
if key == ' ':
sorteia_circulos(NUM_CIRCULOS)
def mousePressed(): # quando um botão do mouse é apertado
global arrastando
for i, circulo in enumerate(circulos):
x, y, d = circulo
dist_mouse_circulo = dist(mouseX, mouseY, x, y)
raio = d / 2
if dist_mouse_circulo < raio:
arrastando = i
break # encerra o laço
def mouseReleased(): # quando um botão do mouse é solto
global arrastando
arrastando = -1
def mouseDragged(): # quando o mouse é movido apertado
if arrastando >= 0:
x, y, d = circulos[arrastando]
x += mouseX - pmouseX
y += mouseY - pmouseY
circulos[arrastando] = (x, y, d)
def mouseWheel(event):
movimento_roda = event.getCount()
for i, circulo in enumerate(circulos):
x, y, d = circulo
dist_mouse_circulo = dist(mouseX, mouseY, x, y)
raio = d / 2
if dist_mouse_circulo < raio:
d += movimento_roda
# Limitar o tamanho possível dos círculos
if 15 < d < 270:
circulos[i] = (x, y, d)
# sem `break` todos sob o mouse seriam afetados
break # interrompe o laço `for`
def sorteia_circulos(num):
circulos[:] = [] # esvazia a lista
for _ in range(num): # vamos sortear `num` círculos
d = 128
x = random(d / 2, width - d / 2)
y = random(d / 2, height - d / 2)
circulos.append((x, y, d))

Wyświetl plik

@ -18,6 +18,12 @@ You may also support my artistic work, open educational resources and research u
---
![sketch_2020_05_12a](2020/sketch_2020_05_12a/sketch_2020_05_12a.gif)
[sketch_2020_05_12a](https://github.com/villares/sketch-a-day/tree/master/2020/sketch_2020_05_12a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)]
---
![sketch_2020_05_11a](2020/sketch_2020_05_11a/sketch_2020_05_11a.gif)
[sketch_2020_05_11a](https://github.com/villares/sketch-a-day/tree/master/2020/sketch_2020_05_11a) [[Py.Processing](https://villares.github.io/como-instalar-o-processing-modo-python/index-EN)]