Loading view/menuWidget.py +26 −22 Original line number Diff line number Diff line Loading @@ -84,16 +84,19 @@ class MenuView(QGraphicsView): p2x = beginX + 0.6 * xLength p2y = beginY - 0.95 * yLength self.drawArrow(beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, GameEnum.PLANAR_TREE_TO_BINARY_TREE) beginX = self.c1x + 0.5 * self.circleSize + 0.5 * self.circleSize * cos(pi / 8) beginY = self.c1y + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 8) endX = self.c3x + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 8) endY = self.c3y + 0.5 * self.circleSize - 0.5 * self.circleSize * cos(pi / 8) beginX = self.c1x + 0.5 * self.circleSize + 0.5 * self.circleSize * cos(pi / 11) beginY = self.c1y + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 11) endX = self.c3x + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 11) endY = self.c3y + 0.5 * self.circleSize - 0.5 * self.circleSize * cos(pi / 11) xLength = endX - beginX yLength = endY - beginY p1x = beginX + 0.6 * xLength p1y = beginY + 0.05 * yLength p2x = beginX + 0.95 * xLength p2y = beginY + 0.1 * yLength p1x = beginX + 0.5 * xLength p1y = beginY + 0.15 * yLength p2x = beginX + 0.9 * xLength p2y = beginY + 0.45 * yLength self.drawArrow(beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, GameEnum.BINARY_TREE_TO_DYCK_WORD) beginX = self.c3x + 0.5 * self.circleSize - (sin(pi / 4) * 0.5 * self.circleSize) beginY = self.c3y + 0.5 * self.circleSize + (cos(pi / 4) * 0.5 * self.circleSize) Loading Loading @@ -155,7 +158,7 @@ class MenuView(QGraphicsView): circle2.setPen(pen) circle3 = QGraphicsEllipseItem(self.c3x, self.c3y, self.circleSize, self.circleSize) circle3.setPen(pen) circle4 = QGraphicsEllipseItem(0.45 * self.w, 0.477 * self.h, 0.68 * self.h, 0.68 * self.h) circle4 = QGraphicsEllipseItem(0.454 * self.w, 0.477 * self.h, 0.68 * self.h, 0.68 * self.h) circle5 = QGraphicsEllipseItem(0.512 * self.w, 0.61 * self.h, 0.4 * self.h, 0.4 * self.h) x1 = QGraphicsEllipseItem(self.c1x + 0.5 * self.circleSize, self.c1y + 0.5 * self.circleSize, 10, 10) x2 = QGraphicsEllipseItem(self.c2x + 0.5 * self.circleSize, self.c2y + 0.5 * self.circleSize, 10, 10) Loading Loading @@ -341,7 +344,7 @@ class Arrow(QGraphicsItemGroup): pen = QPen() pen.setWidth(3) if game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: endLineX = endX - 0.15 * (endX - beginX) endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -370,36 +373,37 @@ class Arrow(QGraphicsItemGroup): line6.setPen(pen) elif game == GameEnum.BINARY_TREE_TO_DYCK_WORD: endLineY = endY - 0.15 * circleSize endLineY = endY - 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) path = QPainterPath() path.moveTo(beginX, beginY - offset) path.cubicTo(p1x - offset, p1y - offset, p2x + offset, p2y - offset, endX + offset, endLineY) path.cubicTo(p1x - offset, p1y - offset, p2x + offset, p2y - offset, endLineX + offset, endLineY - 0.01) line.setPath(path) line2 = QGraphicsPathItem() line2.setPen(pen) path = QPainterPath() path.moveTo(beginX, beginY + offset) path.cubicTo(p1x - offset, p1y + offset, p2x - offset, p2y + offset, endX - offset, endLineY) path.cubicTo(p1x - offset, p1y + offset, p2x - offset, p2y + offset, endLineX - offset, endLineY) line2.setPath(path) line3 = QGraphicsLineItem(endX - offset, endLineY, endX - 2 * offset, endLineY) line3 = QGraphicsLineItem(endLineX - offset, endLineY, endLineX - 2 * offset, endLineY) line3.setPen(pen) line4 = QGraphicsLineItem(endX + offset, endLineY, endX + 2 * offset, endLineY) line4 = QGraphicsLineItem(endLineX + offset, endLineY, endLineX + 2 * offset, endLineY) line4.setPen(pen) line5 = QGraphicsLineItem(endX - 2 * offset, endLineY, endX, endY) line5 = QGraphicsLineItem(endLineX - 2 * offset, endLineY, endX, endY) line5.setPen(pen) line6 = QGraphicsLineItem(endX + 2 * offset, endLineY, endX, endY) line6 = QGraphicsLineItem(endLineX + 2 * offset, endLineY, endX, endY) line6.setPen(pen) elif game == GameEnum.DYCK_WORD_TO_PLANAR_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -427,7 +431,7 @@ class Arrow(QGraphicsItemGroup): line6 = QGraphicsLineItem(endLineX, endY + 2 * offset, endX, endY) line6.setPen(pen) elif game == GameEnum.DYCK_WORD_TO_BINARY_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -455,7 +459,7 @@ class Arrow(QGraphicsItemGroup): line6 = QGraphicsLineItem(endLineX, endY + 2 * offset, endX, endY) line6.setPen(pen) elif game == GameEnum.BINARY_TREE_TO_PLANAR_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -513,10 +517,10 @@ class Arrow(QGraphicsItemGroup): self.addToGroup(line) self.addToGroup(line2) """self.addToGroup(line3) self.addToGroup(line3) self.addToGroup(line4) self.addToGroup(line5) self.addToGroup(line6)""" self.addToGroup(line6) self.connect() def connect(self): Loading Loading
view/menuWidget.py +26 −22 Original line number Diff line number Diff line Loading @@ -84,16 +84,19 @@ class MenuView(QGraphicsView): p2x = beginX + 0.6 * xLength p2y = beginY - 0.95 * yLength self.drawArrow(beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, GameEnum.PLANAR_TREE_TO_BINARY_TREE) beginX = self.c1x + 0.5 * self.circleSize + 0.5 * self.circleSize * cos(pi / 8) beginY = self.c1y + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 8) endX = self.c3x + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 8) endY = self.c3y + 0.5 * self.circleSize - 0.5 * self.circleSize * cos(pi / 8) beginX = self.c1x + 0.5 * self.circleSize + 0.5 * self.circleSize * cos(pi / 11) beginY = self.c1y + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 11) endX = self.c3x + 0.5 * self.circleSize + 0.5 * self.circleSize * sin(pi / 11) endY = self.c3y + 0.5 * self.circleSize - 0.5 * self.circleSize * cos(pi / 11) xLength = endX - beginX yLength = endY - beginY p1x = beginX + 0.6 * xLength p1y = beginY + 0.05 * yLength p2x = beginX + 0.95 * xLength p2y = beginY + 0.1 * yLength p1x = beginX + 0.5 * xLength p1y = beginY + 0.15 * yLength p2x = beginX + 0.9 * xLength p2y = beginY + 0.45 * yLength self.drawArrow(beginX, beginY, endX, endY, p1x, p1y, p2x, p2y, GameEnum.BINARY_TREE_TO_DYCK_WORD) beginX = self.c3x + 0.5 * self.circleSize - (sin(pi / 4) * 0.5 * self.circleSize) beginY = self.c3y + 0.5 * self.circleSize + (cos(pi / 4) * 0.5 * self.circleSize) Loading Loading @@ -155,7 +158,7 @@ class MenuView(QGraphicsView): circle2.setPen(pen) circle3 = QGraphicsEllipseItem(self.c3x, self.c3y, self.circleSize, self.circleSize) circle3.setPen(pen) circle4 = QGraphicsEllipseItem(0.45 * self.w, 0.477 * self.h, 0.68 * self.h, 0.68 * self.h) circle4 = QGraphicsEllipseItem(0.454 * self.w, 0.477 * self.h, 0.68 * self.h, 0.68 * self.h) circle5 = QGraphicsEllipseItem(0.512 * self.w, 0.61 * self.h, 0.4 * self.h, 0.4 * self.h) x1 = QGraphicsEllipseItem(self.c1x + 0.5 * self.circleSize, self.c1y + 0.5 * self.circleSize, 10, 10) x2 = QGraphicsEllipseItem(self.c2x + 0.5 * self.circleSize, self.c2y + 0.5 * self.circleSize, 10, 10) Loading Loading @@ -341,7 +344,7 @@ class Arrow(QGraphicsItemGroup): pen = QPen() pen.setWidth(3) if game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: endLineX = endX - 0.15 * (endX - beginX) endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -370,36 +373,37 @@ class Arrow(QGraphicsItemGroup): line6.setPen(pen) elif game == GameEnum.BINARY_TREE_TO_DYCK_WORD: endLineY = endY - 0.15 * circleSize endLineY = endY - 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) path = QPainterPath() path.moveTo(beginX, beginY - offset) path.cubicTo(p1x - offset, p1y - offset, p2x + offset, p2y - offset, endX + offset, endLineY) path.cubicTo(p1x - offset, p1y - offset, p2x + offset, p2y - offset, endLineX + offset, endLineY - 0.01) line.setPath(path) line2 = QGraphicsPathItem() line2.setPen(pen) path = QPainterPath() path.moveTo(beginX, beginY + offset) path.cubicTo(p1x - offset, p1y + offset, p2x - offset, p2y + offset, endX - offset, endLineY) path.cubicTo(p1x - offset, p1y + offset, p2x - offset, p2y + offset, endLineX - offset, endLineY) line2.setPath(path) line3 = QGraphicsLineItem(endX - offset, endLineY, endX - 2 * offset, endLineY) line3 = QGraphicsLineItem(endLineX - offset, endLineY, endLineX - 2 * offset, endLineY) line3.setPen(pen) line4 = QGraphicsLineItem(endX + offset, endLineY, endX + 2 * offset, endLineY) line4 = QGraphicsLineItem(endLineX + offset, endLineY, endLineX + 2 * offset, endLineY) line4.setPen(pen) line5 = QGraphicsLineItem(endX - 2 * offset, endLineY, endX, endY) line5 = QGraphicsLineItem(endLineX - 2 * offset, endLineY, endX, endY) line5.setPen(pen) line6 = QGraphicsLineItem(endX + 2 * offset, endLineY, endX, endY) line6 = QGraphicsLineItem(endLineX + 2 * offset, endLineY, endX, endY) line6.setPen(pen) elif game == GameEnum.DYCK_WORD_TO_PLANAR_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -427,7 +431,7 @@ class Arrow(QGraphicsItemGroup): line6 = QGraphicsLineItem(endLineX, endY + 2 * offset, endX, endY) line6.setPen(pen) elif game == GameEnum.DYCK_WORD_TO_BINARY_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -455,7 +459,7 @@ class Arrow(QGraphicsItemGroup): line6 = QGraphicsLineItem(endLineX, endY + 2 * offset, endX, endY) line6.setPen(pen) elif game == GameEnum.BINARY_TREE_TO_PLANAR_TREE: endLineX = endX + 0.1 * circleSize endLineX = endX line = QGraphicsPathItem() line.setPen(pen) Loading Loading @@ -513,10 +517,10 @@ class Arrow(QGraphicsItemGroup): self.addToGroup(line) self.addToGroup(line2) """self.addToGroup(line3) self.addToGroup(line3) self.addToGroup(line4) self.addToGroup(line5) self.addToGroup(line6)""" self.addToGroup(line6) self.connect() def connect(self): Loading