def on_key_press(self, symbol, modifiers): # выход из приложения if symbol == key.ESCAPE: self.close() # удаление точки elif symbol == key.DELETE: self.boundary.delete() # уменьшение точек elif symbol == key.DOWN: Point.set_radius(Point.radius - 1) # увеличение точек elif symbol == key.UP: Point.set_radius(Point.radius + 1) # очищение boundary elif symbol == key.C: self.boundary.clear() self.container3D.clear() elif symbol == key.A: self.container3D.rotate(-180, 0) elif symbol == key.W: self.container3D.rotate(0, 180) elif symbol == key.D: self.container3D.rotate(180, 0) elif symbol == key.S: self.container3D.rotate(0, -180) elif symbol == key.Q: self.container3D.clear() elif symbol == key.P: print(datetime.now())
def __init__(self, *args, **kwargs): super(App, self).__init__(caption='Kirchhoff-Plateau Surfaces', resizable=True, width=950, height=480, *args, **kwargs) self.set_minimum_size(950, 480) # инициализируются в on_resize self.container2D, self.container3D = None, None # создаём Boundary self.boundary = Boundary() # для рисования Point.set_radius(5) glEnable(GL_POINT_SMOOTH) glEnable(GL_LINE_SMOOTH) glEnable(GL_DEPTH_TEST) # чёрный фон glClearColor(0., 0., 0., 1)