pip install vispy python import numpy as np from vispy import app, gloo from vispy.util.transforms import perspective, translate, rotate from vispy.io import load_data_file from vispy.geometry import create_sphere python scene = gloo.Program(vertex_shader=vertex_shader, fragment_shader=fragment_shader) scene['model'] = np.eye(4) scene['view'] = translate((0, 0, -5)) scene['projection'] = perspective(45.0, 1.0, 0.1, 100.0) python vertices, normals, indices = create_sphere(accuracy=3) scene.bind(gloo.VertexBuffer(vertices.astype(np.float32))) scene.bind(gloo.IndexBuffer(indices.astype(np.uint32))) @canvas.connect def on_draw(event): gloo.clear() scene.draw() canvas.show() app.run() python from vispy.visuals.transforms import MatrixTransform view = MatrixTransform() @canvas.connect def on_resize(event): width, height = event.size canvas.context.set_viewport(0, 0, width, height) view.set_size((width, height)) @canvas.connect def on_mouse_move(event): if event.is_dragging: dx, dy = event.delta view.rotate(dy, (1, 0, 0), anchor=(0, 0, 0)) view.rotate(dx, (0, 1, 0), anchor=(0, 0, 0)) scene['view'] = view.matrix @canvas.connect def on_key_press(event): if event.key == 'Escape': app.quit() view.add_child(scene) scene.parent = view app.run()


上一篇:
下一篇:
切换中文