Actor > Shapes(Formen)#

Shape-Actors sind zeichnbare Actors mit geometrielastigen APIs.

API-Referenz#

Form#

Basisklasse fuer Shape-Actors.

class miniworlds.actors.shapes.shapes.Shape(position=(0, 0), *args, **kwargs)[Quellcode]#

Base class for geometric actors.

Formen teilen die gemeinsamen Darstellungs-Eigenschaften border, is_filled, fill_color und border_color von Actor.

Beispiele

shape.fill_color = (255, 0, 0)
shape.border = 2
get_costume_class()[Quellcode]#
Rückgabetyp:

ShapeCostume

new_costume()[Quellcode]#

Erzeugt ein neues leeres Costume und hängt es an diesen Actor an.

Rückgabetyp:

ShapeCostume

Punkt#

class miniworlds.actors.shapes.shapes.Point(position)[Quellcode]#

Circle with radius 1.

Parameter:

position – Punktposition als (x, y).

Beispiele

point = Point((10, 10))
__init__(position)[Quellcode]#

Create a point at a position.

Kreis#

class miniworlds.actors.shapes.shapes.Circle(position=(0.0, 0.0), radius=10.0, *args, **kwargs)[Quellcode]#

Kreisform.

Parameter:
  • position – Mittelpunkt als (x, y).

  • radius – Kreisradius in Pixeln.

Beispiele

circle = Circle((200, 100), 20)
circle.fill_color = (255, 0, 0)

circle = Circle.from_topleft((100, 100), 50)
__init__(position=(0.0, 0.0), radius=10.0, *args, **kwargs)[Quellcode]#

Erzeuge einen Kreis.

Parameter:
  • position – Mittelpunkt als (x, y).

  • radius – Kreisradius in Pixeln.

classmethod from_center(position, radius, **kwargs)[Quellcode]#

Erzeuge einen Kreis, der über seinen Mittelpunkt positioniert wird.

Parameter:
  • position – Mittelpunkt als (x, y).

  • radius – Kreisradius in Pixeln.

Rückgabe:

The created circle.

classmethod from_topleft(position, radius, **kwargs)[Quellcode]#

Erzeuge einen Kreis, der über seine linke obere Ecke positioniert wird.

Parameter:
  • position – Top-left position as (x, y).

  • radius – Kreisradius in Pixeln.

Rückgabe:

The created circle.

get_costume_class()[Quellcode]#
Rückgabetyp:

type[costume_mod.Costume]

new_costume()[Quellcode]#

Erzeugt ein neues leeres Costume und hängt es an diesen Actor an.

property radius#

Kreisradius in Pixeln.

Beispiele

circle.radius = 30
Typ:

float

Ellipse#

class miniworlds.actors.shapes.shapes.Ellipse(position=(0, 0), width=10, height=10, *args, **kwargs)[Quellcode]#

Elliptic shape.

Parameter:
  • position – Top-left position as (x, y).

  • width – Breite der Ellipse in Pixeln.

  • height – Höhe der Ellipse in Pixeln.

Beispiele

ellipse = Ellipse((200, 100), 20, 30)
ellipse = Ellipse.from_center((100, 100), 10, 10)
check_arguments(position, width, height)[Quellcode]#

Prüft die Konstruktorargumente für Ellipse.

Parameter:
  • position – Position als (x, y).

  • width – Breite der Ellipse in Pixeln.

  • height – Höhe der Ellipse in Pixeln.

Verursacht:

EllipseWrongArgumentsError – If position is not a tuple.

classmethod from_center(position, width, height, **kwargs)[Quellcode]#

Create an ellipse positioned by its center.

classmethod from_topleft(position, width, height, **kwargs)[Quellcode]#

Erzeuge eine Ellipse, die über ihre linke obere Ecke positioniert wird.

get_costume_class()[Quellcode]#
Rückgabetyp:

type[costume_mod.Costume]

new_costume()[Quellcode]#

Erzeugt ein neues leeres Costume und hängt es an diesen Actor an.

Linie#

class miniworlds.actors.shapes.shapes.Line(start_position, end_position, *args, **kwargs)[Quellcode]#

Linienform zwischen zwei Positionen.

Parameter:
  • start_position – Start position as (x, y).

  • end_position – End position as (x, y).

Beispiele

line = Line((200, 100), (400, 100))
line.border = 2
property border#

Linienstärke in Pixeln.

Typ:

float

property direction#

Actor-Richtung in der Miniworlds/Scratch-Konvention.

Häufige Werte sind 0 oder "up", 90 oder "right", -90 oder "left" und 180 oder "down".

Beispiele

@player.register
def on_key_down(self, key):
    if "left" in key:
        self.direction = "left"
    elif "right" in key:
        self.direction = "right"
    self.move()

actor.direction = 45
actor.move()
Typ:

int

property end#

Endpunkt als (x, y).

Typ:

tuple[float, float]

property end_position#

Endpunkt als (x, y).

Typ:

tuple[float, float]

get_bounding_box()[Quellcode]#

Gibt das rechteckige Begrenzungsrechteck zurück, das die Linie enthält.

Rückgabe:

Begrenzungsrechteck einschließlich Linienstärke.

get_costume_class()[Quellcode]#
Rückgabetyp:

type[costume_mod.Costume]

property length#

Aktuelle Linienlänge in Pixeln.

Typ:

float

property line_width#

Linienstärke in Pixeln.

Typ:

float

new_costume()[Quellcode]#

Erzeugt ein neues leeres Costume und hängt es an diesen Actor an.

property start#

Startpunkt als (x, y).

Typ:

tuple[float, float]

property start_position#

Startpunkt als (x, y).

Typ:

tuple[float, float]

property thickness#

Linienstärke in Pixeln.

Typ:

float

Rechteck#

class miniworlds.actors.shapes.shapes.Rectangle(position=(0, 0), width=10, height=10, *args, **kwargs)[Quellcode]#

Rectangular shape.

Parameter:
  • position – Top-left position as (x, y).

  • width – Breite des Rechtecks in Pixeln.

  • height – Höhe des Rechtecks in Pixeln.

Beispiele

rectangle = Rectangle((200, 100), 20, 10)
classmethod from_center(position, width, height)[Quellcode]#

Create a rectangle positioned by its center.

classmethod from_topleft(position, width, height)[Quellcode]#

Erzeuge ein Rechteck, das über seine linke obere Ecke positioniert wird.

get_costume_class()[Quellcode]#
Rückgabetyp:

type[costume_mod.Costume]

new_costume()[Quellcode]#

Erzeugt ein neues leeres Costume und hängt es an diesen Actor an.

Polygon#

class miniworlds.actors.shapes.shapes.Polygon(position: Tuple[float, float] | None = (0, 0), *args, **kwargs)[Quellcode]#

Polygon shape.

Parameter:

pointlist – List of corner points.

Beispiele

polygon = Polygon([(200, 100), (400, 100), (0, 0)])
polygon.fill_color = (255, 0, 0)
property pointlist#

Eckpunkte des Polygons.

Typ:

list[tuple[float, float]]

Triangle#

class miniworlds.actors.shapes.shapes.Triangle(p1, p2, p3, *args, **kwargs)[Quellcode]#

Eine Dreiecksform, die durch drei Eckpunkte definiert ist.

Parameter:
  • p1 – Erste Ecke als (x, y).

  • p2 – Zweite Ecke als (x, y).

  • p3 – Dritte Ecke als (x, y).

Beispiele

triangle = Triangle((100, 50), (50, 150), (150, 150))
triangle.fill_color = (255, 165, 0)

Arc#

class miniworlds.actors.shapes.shapes.Arc(position=(0, 0), width=10, height=10, start_angle=0, end_angle=0, *args, **kwargs)[Quellcode]#

Elliptic arc shape.

Parameter:
  • position – Top-left position as (x, y).

  • width – Breite des Bogens in Pixeln.

  • height – Höhe des Bogens in Pixeln.

  • start_angle – Startwinkel in Grad.

  • end_angle – Endwinkel in Grad.

Beispiele

arc = Arc((20, 20), 100, 60, 0, 180)
property end_angle#

Endwinkel in Grad.

Typ:

float

classmethod from_center(position, width, height, start_angle=0, end_angle=360, **kwargs)[Quellcode]#

Erzeuge einen Bogen, der über seinen Mittelpunkt positioniert wird.

property start_angle#

Startwinkel in Grad.

Typ:

float