14. Izopovrchy metaballs
from pygame import *
from random import *
WHITE = Color(255, 255, 255)
BLACK = Color(0, 0, 0)
WIDTH = 500
HEIGHT = 500
r = 40
screen = display.set_mode([WIDTH, HEIGHT])
blob = Vector2(100, 100)
velocity = Vector2()
velocity.from_polar((uniform(20, 25), randrange(360)))
while True:
screen.fill(BLACK)
pixels = PixelArray(screen)
for y in range(HEIGHT):
for x in range(WIDTH):
pos = Vector2(x, y)
middle = Vector2(blob.x, blob.y)
d = pos.distance_to(middle)
c = 0
if d == 0:
c = 255
else:
c = min(int(300 * r / d), 255)
pixels[x, y] = Color(c, c, c)
pixels.close()
# draw.circle(screen, WHITE, [int(blob.x), int(blob.y)], r)
blob += velocity
display.update()