Loading diagrammes/.~lock.algoDePlacement.odt#deleted 100644 → 0 +0 −1 Original line number Diff line number Diff line ,LAPTOP-GJS36RRU/aurel,LAPTOP-GJS36RRU,02.06.2022 21:50,file:///C:/Users/aurel/AppData/Roaming/LibreOffice/4; No newline at end of file model/levelEnum.py +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ LevelsPlanarTreeToBinaryTree = Enum("Levels", [ ("Lvl3", Tree(BinaryNode(BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf())), BinaryNode(Leaf(), Leaf()))))]) LevelsBinaryTreeToPlanarTree = Enum("Levels", [ ("Lvl1", Tree(BinaryNode(Leaf(), BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf()))))), ("Lvl1", Tree(BinaryNode(BinaryNode(Leaf(), Leaf()), BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf()))))), ("Lvl2", Tree(BinaryNode(BinaryNode(Leaf(), Leaf()), BinaryNode(Leaf(), Leaf())))), ("Lvl3", Tree(BinaryNode(BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf())), BinaryNode(Leaf(), Leaf()))))]) Loading view/menu.py +6 −3 Original line number Diff line number Diff line Loading @@ -111,9 +111,9 @@ class Menu: def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QGridLayout() self.gamesLayout = QHBoxLayout() binary_tree_widget = BinaryTreeWidget() """binary_tree_widget = BinaryTreeWidget() self.gamesLayout.addWidget(binary_tree_widget, 0, 2) arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) Loading @@ -122,7 +122,10 @@ class Menu: planar_tree_widget = PlanarTreeWidget() self.gamesLayout.addWidget(planar_tree_widget, 2, 0) dyck_word_widget = DyckWordWidget() self.gamesLayout.addWidget(dyck_word_widget, 2, 4) self.gamesLayout.addWidget(dyck_word_widget, 2, 4)""" arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree) self.gamesWidget.setLayout(self.gamesLayout) self.centralLayout.addWidget(self.gamesWidget) Loading view/menuWidget.py +65 −10 Original line number Diff line number Diff line from PyQt5.QtGui import QFont from PyQt5.QtGui import QFont, QPen, QColor from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt from model.GameEnum import GameEnum from model.node import Leaf, BinaryNode, binaryTreeToPlanarTree Loading Loading @@ -38,13 +40,13 @@ class ArrowWidget(QWidget): def createArrowView(self, xSize: float, ySize: float, angle: float): self.treeScene = QGraphicsScene() self.arrowView = ArrowView(self.treeScene, xSize=xSize, ySize=ySize, angle=angle) self.arrowView = MenuView(self.treeScene, xSize=xSize, ySize=ySize, angle=angle) def mousePressEvent(self, QMouseEvent): self.clicked.trigger() class ArrowView(QGraphicsView): class MenuView(QGraphicsView): """ class which contains a level of a game and which is used to draw the BinaryTree of the level """ Loading @@ -55,17 +57,70 @@ class ArrowView(QGraphicsView): self.ySize = ySize self.angle = angle self.arrowItemsGroup = QGraphicsItemGroup() self.drawArrow() self.scene().addItem(self.arrowItemsGroup) self.itemsGroup = QGraphicsItemGroup() self.scene().addItem(self.itemsGroup) self.drawGames() def drawGames(self): self.scene().removeItem(self.itemsGroup) self.itemsGroup = QGraphicsItemGroup() h = self.height() w = self.width() circleSize = 0.5 * min(h, w) self.drawCircles(w, h, circleSize) self.drawTree(circleSize, w, h) self.scene().addItem(self.itemsGroup) self.scene().setSceneRect(self.itemsGroup.sceneBoundingRect()) def drawCircles(self, w: float, h: float, circleSize: float): circle1 = QGraphicsEllipseItem(0.5 * w - circleSize, 0.25 * h - circleSize, circleSize, circleSize) circle2 = QGraphicsEllipseItem(0.25 * w - circleSize, 0.65 * h - circleSize, circleSize, circleSize) circle3 = QGraphicsEllipseItem(0.75 * w - circleSize, 0.65 * h - circleSize, circleSize, circleSize) self.itemsGroup.addToGroup(circle1) self.itemsGroup.addToGroup(circle2) self.itemsGroup.addToGroup(circle3) def drawTree(self, circleSize: float, w: float, h: float): nodePen = QPen(QColor(21, 67, 96)) branchPen = QPen(QColor(21, 67, 96)) nodeColor = QColor(169, 204, 227) lineWidth = 0.01 * circleSize nodeWidth = 0.12 * circleSize branchPen.setWidth(lineWidth) branchPen.setCapStyle(Qt.RoundCap) nodePen.setWidth(0.1 * nodeWidth) leftLine = QGraphicsLineItem() rightLine = QGraphicsLineItem() x1 = 0.5 * w - circleSize / 2 y1 = 0.1 * h - 0.5 * circleSize x2 = x1 - 0.25 * circleSize y2 = y1 + 0.3 * circleSize x3 = x1 + 0.25 * circleSize y3 = y2 leftLine.setLine(x1, y1, x2, y2) leftLine.setPen(branchPen) rightLine.setLine(x1, y1, x3, y3) rightLine.setPen(branchPen) self.itemsGroup.addToGroup(leftLine) self.itemsGroup.addToGroup(rightLine) node = QGraphicsEllipseItem() node.setRect(x1 - nodeWidth / 2, y1 - nodeWidth / 2, nodeWidth, nodeWidth) node.setPen(nodePen) node.setBrush(nodeColor) self.itemsGroup.addToGroup(node) """leaf = QGraphicsRectItem() leaf.setRect(tree.x * widthRatio - nodeWidth / 2, tree.y * heightRatio, nodeWidth, nodeWidth) leaf.setPen(nodePen) self.itemsGroup.addToGroup(leaf)""" def drawArrow(self): rectangle = QGraphicsRectItem(0, 0, 20, 100) self.arrowItemsGroup.addToGroup(rectangle) def resizeEvent(self, e): e.accept() self.drawArrow() self.drawGames() class DyckWordWidget(QWidget): Loading view/treeView.py +0 −2 Original line number Diff line number Diff line import math from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt, QObject, pyqtSignal Loading Loading
diagrammes/.~lock.algoDePlacement.odt#deleted 100644 → 0 +0 −1 Original line number Diff line number Diff line ,LAPTOP-GJS36RRU/aurel,LAPTOP-GJS36RRU,02.06.2022 21:50,file:///C:/Users/aurel/AppData/Roaming/LibreOffice/4; No newline at end of file
model/levelEnum.py +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ LevelsPlanarTreeToBinaryTree = Enum("Levels", [ ("Lvl3", Tree(BinaryNode(BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf())), BinaryNode(Leaf(), Leaf()))))]) LevelsBinaryTreeToPlanarTree = Enum("Levels", [ ("Lvl1", Tree(BinaryNode(Leaf(), BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf()))))), ("Lvl1", Tree(BinaryNode(BinaryNode(Leaf(), Leaf()), BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf()))))), ("Lvl2", Tree(BinaryNode(BinaryNode(Leaf(), Leaf()), BinaryNode(Leaf(), Leaf())))), ("Lvl3", Tree(BinaryNode(BinaryNode(Leaf(), BinaryNode(Leaf(), Leaf())), BinaryNode(Leaf(), Leaf()))))]) Loading
view/menu.py +6 −3 Original line number Diff line number Diff line Loading @@ -111,9 +111,9 @@ class Menu: def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QGridLayout() self.gamesLayout = QHBoxLayout() binary_tree_widget = BinaryTreeWidget() """binary_tree_widget = BinaryTreeWidget() self.gamesLayout.addWidget(binary_tree_widget, 0, 2) arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) Loading @@ -122,7 +122,10 @@ class Menu: planar_tree_widget = PlanarTreeWidget() self.gamesLayout.addWidget(planar_tree_widget, 2, 0) dyck_word_widget = DyckWordWidget() self.gamesLayout.addWidget(dyck_word_widget, 2, 4) self.gamesLayout.addWidget(dyck_word_widget, 2, 4)""" arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree) self.gamesWidget.setLayout(self.gamesLayout) self.centralLayout.addWidget(self.gamesWidget) Loading
view/menuWidget.py +65 −10 Original line number Diff line number Diff line from PyQt5.QtGui import QFont from PyQt5.QtGui import QFont, QPen, QColor from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt from model.GameEnum import GameEnum from model.node import Leaf, BinaryNode, binaryTreeToPlanarTree Loading Loading @@ -38,13 +40,13 @@ class ArrowWidget(QWidget): def createArrowView(self, xSize: float, ySize: float, angle: float): self.treeScene = QGraphicsScene() self.arrowView = ArrowView(self.treeScene, xSize=xSize, ySize=ySize, angle=angle) self.arrowView = MenuView(self.treeScene, xSize=xSize, ySize=ySize, angle=angle) def mousePressEvent(self, QMouseEvent): self.clicked.trigger() class ArrowView(QGraphicsView): class MenuView(QGraphicsView): """ class which contains a level of a game and which is used to draw the BinaryTree of the level """ Loading @@ -55,17 +57,70 @@ class ArrowView(QGraphicsView): self.ySize = ySize self.angle = angle self.arrowItemsGroup = QGraphicsItemGroup() self.drawArrow() self.scene().addItem(self.arrowItemsGroup) self.itemsGroup = QGraphicsItemGroup() self.scene().addItem(self.itemsGroup) self.drawGames() def drawGames(self): self.scene().removeItem(self.itemsGroup) self.itemsGroup = QGraphicsItemGroup() h = self.height() w = self.width() circleSize = 0.5 * min(h, w) self.drawCircles(w, h, circleSize) self.drawTree(circleSize, w, h) self.scene().addItem(self.itemsGroup) self.scene().setSceneRect(self.itemsGroup.sceneBoundingRect()) def drawCircles(self, w: float, h: float, circleSize: float): circle1 = QGraphicsEllipseItem(0.5 * w - circleSize, 0.25 * h - circleSize, circleSize, circleSize) circle2 = QGraphicsEllipseItem(0.25 * w - circleSize, 0.65 * h - circleSize, circleSize, circleSize) circle3 = QGraphicsEllipseItem(0.75 * w - circleSize, 0.65 * h - circleSize, circleSize, circleSize) self.itemsGroup.addToGroup(circle1) self.itemsGroup.addToGroup(circle2) self.itemsGroup.addToGroup(circle3) def drawTree(self, circleSize: float, w: float, h: float): nodePen = QPen(QColor(21, 67, 96)) branchPen = QPen(QColor(21, 67, 96)) nodeColor = QColor(169, 204, 227) lineWidth = 0.01 * circleSize nodeWidth = 0.12 * circleSize branchPen.setWidth(lineWidth) branchPen.setCapStyle(Qt.RoundCap) nodePen.setWidth(0.1 * nodeWidth) leftLine = QGraphicsLineItem() rightLine = QGraphicsLineItem() x1 = 0.5 * w - circleSize / 2 y1 = 0.1 * h - 0.5 * circleSize x2 = x1 - 0.25 * circleSize y2 = y1 + 0.3 * circleSize x3 = x1 + 0.25 * circleSize y3 = y2 leftLine.setLine(x1, y1, x2, y2) leftLine.setPen(branchPen) rightLine.setLine(x1, y1, x3, y3) rightLine.setPen(branchPen) self.itemsGroup.addToGroup(leftLine) self.itemsGroup.addToGroup(rightLine) node = QGraphicsEllipseItem() node.setRect(x1 - nodeWidth / 2, y1 - nodeWidth / 2, nodeWidth, nodeWidth) node.setPen(nodePen) node.setBrush(nodeColor) self.itemsGroup.addToGroup(node) """leaf = QGraphicsRectItem() leaf.setRect(tree.x * widthRatio - nodeWidth / 2, tree.y * heightRatio, nodeWidth, nodeWidth) leaf.setPen(nodePen) self.itemsGroup.addToGroup(leaf)""" def drawArrow(self): rectangle = QGraphicsRectItem(0, 0, 20, 100) self.arrowItemsGroup.addToGroup(rectangle) def resizeEvent(self, e): e.accept() self.drawArrow() self.drawGames() class DyckWordWidget(QWidget): Loading
view/treeView.py +0 −2 Original line number Diff line number Diff line import math from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt, QObject, pyqtSignal Loading