Example #1
0
 def transformViewport():
     Viewport.listObjects = Window.copyListObjects(Window.listObjects)
     [xmin, ymin], [xmax, ymax] = Window.expanded_boundaries()
     for object in Viewport.listObjects:
         listPoints = []
         for point in object.points:
             x, y = point
             xvp = ((x - xmin) / (xmax - xmin)) * (Viewport.xmax - Viewport.xmin)
             yvp = (1 - ((y - ymin) / (ymax - ymin))) * (Viewport.ymax - Viewport.ymin)
             listPoints.append([xvp, yvp])
         object.points = listPoints
from PyQt5.QtCore import QRectF, QPoint
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QPainter, QPalette, QColor
from PyQt5 import QtCore
from models.viewport import Viewport
from models.window import Window
from operations.clipping import Clipping

[xmin, ymin], [xmax, ymax] = Window.expanded_boundaries()
xini = ((0 - xmin) / (xmax - xmin)) * (Viewport.xmax - Viewport.xmin)
yini = (1 - ((0 - ymin) / (ymax - ymin))) * (Viewport.ymax - Viewport.ymin)
xfin = ((800 - xmin) / (xmax - xmin)) * (Viewport.xmax - Viewport.xmin)
yfin = (1 - ((450 - ymin) / (ymax - ymin))) * (Viewport.ymax - Viewport.ymin)
rect = QRectF(QPoint(xini, yini), QPoint(xfin, yfin))


class RightWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(Viewport.xmax, Viewport.ymax)
        self.setAutoFillBackground(True)

        palette = self.palette()
        palette.setColor(QPalette.Window, QColor('white'))
        self.setPalette(palette)

        self.timer = QtCore.QTimer(self)
        self.timer.timeout.connect(self.update)
        self.timer.start(1000 / 60)

    def paintEvent(self, event):