Ball-Simulator

Форк
0
/
painter.py 
44 строки · 1.5 Кб
1
from PyQt5 import QtCore, QtGui, QtWidgets
2

3

4
class PaintBoard(QtWidgets.QFrame):
5

6
    def setBoard(self, board):
7
        self.board = board
8

9
    def paintEvent(self, event):
10
        qp = QtGui.QPainter()
11
        qp.begin(self)
12
        self.drawTrackBalls(qp)
13
        self.drawBall(qp)
14
        qp.end()
15

16
    def drawBall(self, qp):
17
        for ball in self.board.balls:
18
            color = (ball.color[0], ball.color[1], ball.color[2], ball.color[3])
19
            self.setPencil(qp, color, 5)
20
            qp.setBrush(QtGui.QColor.fromRgb(ball.color[0], ball.color[1], ball.color[2], ball.color[3]))
21
            qp.drawEllipse(ball.coords[0] - ball.radius, self.size().height() - ball.coords[1] - ball.radius,
22
                           ball.radius * 2, ball.radius * 2)
23

24
    def drawTrackBalls(self, qp):
25
        for ball in self.board.balls:
26
            color = (ball.color[0], ball.color[1], ball.color[2], ball.color[3])
27
            self.setPencil(qp, color, 2)
28

29
            for i in range(len(ball.track) - 1):
30
                startX = ball.track[i][0]
31
                startY = ball.track[i][1]
32
                endX = ball.track[i + 1][0]
33
                endY = ball.track[i + 1][1]
34
                qp.drawLine(startX, self.size().height() - startY, endX, self.size().height() - endY)
35

36
    @staticmethod
37
    def setPencil(qp, color, thickness):
38
        color = QtGui.QColor.fromRgb(color[0], color[1], color[2], color[3])
39
        pen = QtGui.QPen(color, thickness, QtCore.Qt.SolidLine)
40
        qp.setPen(pen)
41

42

43
if __name__ == "__main__":
44
    print('Module for Ball Simulator')
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.