class Triangle(QGraphicsView): def __init__(self, x1, y1, x2, y2, x3, y3): self.x1 = x1 self.y1 = y1 self.x2 = x2 self.y2 = y2 self.x3 = x3 self.y3 = y3 triangle = QtGui.QPolygonF(3) triangle[0] = QtCore.QPoint(self.x1, self.y1) triangle[1] = QtCore.QPoint(self.x2, self.y2) triangle[2] = QtCore.QPoint(self.x3, self.y3) self.triangle = QGraphicsPolygonItem(triangle) def draw_triangle(self, scene): scene.addItem(self.triangle) def move_triangle(self, m, n): self.triangle.setPos(m, n) def rotate_triangle(self, r): self.triangle.setRotation(r) def scale_triangle(self, s): self.triangle.setScale((s + 50) / 100) def recolor_triangle(self, r, g, b): self.triangle.setBrush(QColor(r, g, b))
def create_arrow(tile): item = QGraphicsPolygonItem(qt_drawings.arrow_polygon) item.setPen(qt_drawings.no_pen) if tile: item.setBrush(qt_drawings.cyan_brush if tile.is_frozen else qt_drawings.black_brush) item.setTransformOriginPoint(qt_drawings.tile_size / 2, qt_drawings.tile_size / 2) angle = base_scene_reactor.tile_rotation_angles[tile.is_horizontal][tile.is_positive] item.setRotation(angle) else: item.setBrush(qt_drawings.black_brush) return item