Поворот stl файла с помощью QTimer - PullRequest
0 голосов
/ 06 августа 2020

Я могу повернуть импортированный файл stl. Однако, когда я пытаюсь вращать его с помощью QTimer случайным числом каждую секунду, он не работает. Хотя пишутся случайные числа, при запуске просто вращается, после этого нет. Как это сделать?

Код здесь:

class Canvas(FigureCanvas, FuncAnimation):
    def __init__(self, parent=None, width=0, height=0, dpi=55):
        self.fig = Figure(figsize=(8, 7.5), dpi=57)
        self.fig.patch.set_facecolor('#efefef')
        self.fig.patch.set_alpha(0)

        FigureCanvas.__init__(self, self.fig)
        self.setParent(parent)
        self.ax6 = self.figure.add_subplot(111, projection='3d')
        self.ax6.get_xaxis().set_visible(False)
        self.ax6.set_xlim(-150,250)
        self.ax6.set_ylim(-200,200)
        self.ax6.set_zlim(0,400)
        self.ax6.set_facecolor('#efefef')

        self.m1 = mesh.Mesh.from_file('assets/uydu.stl')
        self.timerRotation = QtCore.QTimer()
        self.timerRotation.timeout.connect(self.rotator)
        self.timerRotation.start(1000)
        
    def rotator(self):
        self.degree = random.randint(0, 360)
        print(f"{self.degree} degree" )
        self.m1.rotate([0, 1, 0], math.radians(self.degree))
        self.ax6.add_collection3d(mplot3d.art3d.Poly3DCollection(self.m1.vectors,edgecolor='k'))
        scale = self.m1.points.flatten()
        self.ax6.auto_scale_xyz(scale-10, scale+10, scale)
...