Ich schreibe ein Projekt, wo Sie ein Polygon mit Scheitelpunkten und Linien verbinden können und dann in eine Physik-Engine wie pymunk laufen lassen.Überprüfen, ob alle Scheitelpunkte in einer Schleife verbunden sind
Ich möchte sicherstellen, dass alle Knoten in einer Schleife wie diese
verbunden sind, und wenn es nicht ganz wie so
verbunden ist Jeder Knoten ist ein Vertex-Objekt, das unter
class Vertex():
def __init__(self, id, position, pointsTo = [], rectSize = [10, 10]):
self.id = int(id)
self.position = tuple(position)
self.rect = tuple((position[0], position[1], rectSize[0], rectSize[1]))
self.pointsTo = list(pointsTo)
def setPosition(self, position):
self.position = tuple((position[0] - (self.rect[2]/2), position[1] - (self.rect[3]/2)))
self.rect = tuple((self.position[0], self.position[1], self.rect[2], self.rect[3]))
def getRect(self):
return self.rect
Wo pointsTo eine Liste der Scheitelpunkte ist, die an diesem Eckpunkt verbunden sind .Wie würde ich herausfinden, ob eine Liste von Scheitelpunkten in einer Schleife miteinander verbunden ist
Ist 'pointsTo' eine Liste von Vertex-Instanzen? – Artyer
@Artyer Ja, Entschuldigung für die langsame Antwort. – adammoyle
Nur um zu überprüfen, dass alle Adjazenzlisten genau zwei Elemente haben, im Graphen g, das ist eine Liste von Vertex-Objekten: all (map (lambda v: 2 == len (v.pointsTo), g)) –