代码拉取完成,页面将自动刷新
# -*- coding:utf-8 -*-
#模拟流体的程序
import sys, random
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt, QBasicTimer, pyqtSignal
import stimulator as sm
class LiquidBox(QWidget):
# 模拟流体力学程序,盛着液体的盒子
def __init__(self):
super().__init__()
self.speed = 100 #重绘速度1s
self.WindowSize = 50
self.timer = QBasicTimer()
self.sim = sm.Stimulator(self.WindowSize)
self.initUI()
def initUI(self):
self.setGeometry(200, 200, 600, 600)
self.setFixedSize(400, 400)
self.setWindowTitle("流体力学模拟程序")
self.timer.start(self.speed, self)
self.show()
#处理计时器消息
def timerEvent(self, event):
if event.timerId() == self.timer.timerId():
self.update()
else:
super().timerEvent(event)
#处理重绘消息
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
self.Draw(qp)
qp.end()
#具体绘图函数
def Draw(self, qp):
qp.setPen(Qt.blue)
points = self.sim.step()
for i in range(len(points)):
qp.drawPoint(int(points[i][0]), int(points[i][1]))
if __name__ == "__main__":
app = QApplication(sys.argv)
liquidSitumator = LiquidBox()
sys.exit(app.exec_())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。