SimpleFrom.py
class Form:
def __init__(self, x, y, r): # Constructor
self.x = x; self.y = y # Set x and y position
self.rad = r # Set radius
self.x_speed = random(-2, 2) # Set random x speed
self.y_speed = random(-2, 2) # Set random y speed
# self.x_speed = random(-10, 10) # Set random x speed
# self.y_speed = random(-10, 10) # Set random y speed
def update_me(self):
self.x = (self.x + self.x_speed) % width # Moves x and wrap
self.y = (self.y + self.y_speed) % height # Moves y and wrap
def draw_me(self):
stroke(200)
point(self.x, self.y) # Draw a dot
noStroke(); fill(200,50)
ellipse(self.x, self.y, self.rad, self.rad) # Draw a circle
def line_to(self, other):
stroke(200)
line(self.x, self.y, other.x, other.y)
运行
from SimpleForm import Form
def setup():
size(600, 600)
background(50)
global forms
forms = []
for i in range(10):
starting_x = width/4 * random(1, 3)
starting_y = height/4 * random(1, 3)
forms.append(Form(starting_x, starting_y, 10))
def draw():
background(50) # Clear the screen each time
for i in range(len(forms)):
forms[i].update_me() # Update the position of each
for a in range(len(forms)):
for b in range(len(forms)):
if a > b: # Prevents lines drawing twice
forms[a].line_to(forms[b])