class Graphic:
"""
Superklasse, für Objekte mit einer Position, eine Bewegungsrichtung und zufülligen Farbe
"""
def __init__(self, parameter_pos_x:int, parameter_pos_y:int):
self.pos_x = parameter_pos_x
self.pos_y = parameter_pos_y
self.move_x = random(-5,5)
self.move_y = random(-5,5)
self.color_r = random(255)
self.color_g = random(255)
self.color_b = random(255)
def draw(self):
"""
Zeichnet die Grafik auf die Zeichenfläche. Wird von abgeleiteten Klassen implementiert.
"""
fill(self.color_r, self.color_g, self.color_b)
def move(self):
"""
bewegt die Graphi
"""
def move(self):
self.pos_x += self.move_x
self.pos_y += self.move_y
# Verlassen des Fensters auf x-Achse
if self.pos_x > windowWidth:
self.pos_x = 0
elif self.pos_x < 0:
self.pos_x = windowWidth
# Verlassen des Fensters auf y-Achse
if self.pos_y > windowHeight:
self.pos_y = 0
elif self.pos_y < 0:
self.pos_y = windowHeight
class Circle(Graphic):
"""
Repräsentiert einen Kreis.
"""
def __init__(self, parameter_pos_x:int, parameter_pos_y:int, parameter_size:int=10):
# Aufruf des Constructors der Superklasse
super().__init__(parameter_pos_x, parameter_pos_y)
self.size = parameter_size
def draw(self):
super().draw()
circle(self.pos_x, self.pos_y, self.size)
class Triangle(Graphic):
"""
Repräsentiert ein Dreieck.
"""
def __init__(self, parameter_pos_x:int, parameter_pos_y:int, parameter_size:int=10):
# Aufruf des Constructors der Superklasse
super().__init__(parameter_pos_x, parameter_pos_y)
self.size = parameter_size
def draw(self):
super().draw()
triangle(self.pos_x, self.pos_y, self.pos_x-self.size, self.pos_y+self.size, self.pos_x-self.size, self.pos_y-self.size)
class Square(Graphic):
"""
Repräsentiert ein Dreieck.
"""
def __init__(self, parameter_pos_x:int, parameter_pos_y:int, parameter_size:int=10):
# Aufruf des Constructors der Superklasse
super().__init__(parameter_pos_x, parameter_pos_y)
self.size = parameter_size
def draw(self):
super().draw()
square(self.pos_x, self.pos_y, self.size)
graphics = []
def setup():
createCanvas(windowWidth,windowHeight)
for i in range(20):
graphics.append(Circle(random(1000), random(1000), random(120)))
graphics.append(Triangle(random(1000), random(1000), random(120)))
graphics.append(Square(random(1000), random(1000), random(120)))
def draw():
background("black")
#drawTickAxes()
for g in graphics:
g.draw()
g.move()