Dies ist eine alte Version des Dokuments!
Inputdatenformat!
Das Ziel von diesem Zwischenprojekt ist, es eine Datenstruktur zu schaffen, in der die Puckinformationen gespeichert werden und weiterverarbeitet werden können.
Dazu haben wir eine Puckklasse geschrieben. Eine Instanz dieser Klasse repräsentiert dann ein Puck auf den Tisch.
Die Klasse Puck implementiert die folgenen Methoden:
Methode | Beschreibung |
---|---|
init() | Konstruktor, initialisiert Attribute |
str() | Methode für bequeme formatierte ausgabe |
len() | Gibt die Länge der History zurück |
setPos(timestamp,pos) | aktualisiert die aktuelle Puckposition |
getRadius() | gibt den Radius des Pucks zurück |
getWeight() | gibt die Masse des Pucks zurück |
getPos() | gibt die aktuelle Position zurück ((Die Positio, Geschwindigkeit, usw. werden als Numpy Arrays zurückgegebn, da diese die Vektoroperationen implementieren) |
getPos(timestamp) | gibt die Position zu einem gewählten Zeitpunkt zurück |
getTime(frame) | gibt den Timestamp aus |
getPositionen() | gibt alle Positionen des Pucks zurück |
getVelocityVector() | gibt den Geschwindigkeitsvektor des Pucks zurück |
getVelocity() | gibt den Geschwindigkeitswert des Pucks zurück |
getPulseVector() | gibt den Impulsvektor zurück |
getPulse() | gibt den Impulswert zurück |
Die Frameklasse verwaltet alle Pucks. Damit findet unter anderem die Kommunikation zwischen der Trackingsoftware mit einer Instanz der Frameklasse statt. Die Frameklasse empfängt die Daten von der Trackingsoftware in einer bestimmten Form:
daten = [timestamp, (identifier, [(x1,y1),(x2,y2),(x3,y3),(x4,y4)]), ...]