def update_view(self, param): cols = param.props['cols'] radius = param.props['radius'] if param.name == 'sphere': rows = param.props['rows'] mesh = gen.create_sphere(cols, rows, radius=radius) elif param.name == 'cone': length = param.props['length'] mesh = gen.create_cone(cols, radius=radius, length=length) elif param.name == 'cylinder': rows = param.props['rows'] length = param.props['length'] radius2 = param.props['radius Top.'] mesh = gen.create_cylinder(rows, cols, radius=[radius, radius2], length=length) elif param.name == 'arrow': length = param.props['length'] rows = param.props['rows'] cone_radius = param.props['cone_radius'] cone_length = param.props['cone_length'] mesh = gen.create_arrow(rows, cols, radius=radius, length=length, cone_radius=cone_radius, cone_length=cone_length) else: return self.canvas.visible = param.props['visible'] self.mesh.set_vertices(mesh.vertices()) self.mesh.set_faces(mesh.faces()) self.mesh.set_vertex_colors(DEFAULT_COLOR) vertices, filled, outline = self.mesh.get_glTriangles() self.canvas.set_data(vertices, filled, outline)
def update_view(self, param): cols = param.props['cols'] radius = param.props['radius'] if param.name == 'sphere': rows = param.props['rows'] mesh = gen.create_sphere(cols, rows, radius=radius) elif param.name == 'cone': length = param.props['length'] mesh = gen.create_cone(cols, radius=radius, length=length) elif param.name == 'cylinder': rows = param.props['rows'] length = param.props['length'] radius2 = param.props['radius Top.'] mesh = gen.create_cylinder(rows, cols, radius=[radius, radius2], length=length) elif param.name == 'arrow': length = param.props['length'] rows = param.props['rows'] cone_radius = param.props['cone_radius'] cone_length = param.props['cone_length'] mesh = gen.create_arrow(rows, cols, radius=radius, length=length, cone_radius=cone_radius, cone_length=cone_length) else: return self.canvas.visible = param.props['visible'] self.mesh.set_vertices(mesh.get_vertices()) self.mesh.set_faces(mesh.get_faces()) colors = np.tile(DEFAULT_COLOR, (self.mesh.n_vertices, 1)) self.mesh.set_vertex_colors(colors) vertices, filled, outline = self.mesh.get_glTriangles() self.canvas.set_data(vertices, filled, outline)
def __init__(self, **kwargs): app.Canvas.__init__(self, **kwargs) self.geometry = 0, 0, 400, 400 mesh = create_sphere(10, 10, radius=2.) vertices = mesh.get_vertices() tris = mesh.get_faces() data=vertices[:, 2] self.filled_buf = gloo.IndexBuffer(tris) self.program = ModularProgram(VERT_CODE, FRAG_CODE) colormap = get_colormap('autumn') self.color = Function(colormap.glsl_map) self.program.frag['color'] = self.color('floor(v_value*10.+0.5)/10.') # Set attributes self.program['a_position'] = gloo.VertexBuffer(vertices) self.program['a_value'] = gloo.VertexBuffer(normalize(data, data.min(), data.max())) # Handle transformations self.init_transforms() gloo.set_clear_color((1, 1, 1, 1)) gloo.set_state(depth_test=True) self._timer = app.Timer('auto', connect=self.update_transforms) self._timer.start()
def sensor_animation(ev): global radius, amination_alpha radius += 2 amination_alpha -= 0.4 if radius > 7: radius = 2 amination_alpha = 1 mesh = create_sphere(cols, rows, radius=radius) vertices = mesh.get_vertices() tris = mesh.get_faces() nbr_level = 20 cl = np.linspace(-radius, radius, nbr_level+2)[1:-1] iso.set_data(vertices=vertices, tris=tris, data=vertices[:, 2]) iso.levels=cl iso.set_color((0,1,1,amination_alpha))
def __init__(self): scene.SceneCanvas.__init__(self, keys='interactive') self.size = 800, 600 self.view = self.central_widget.add_view() self.view.camera = scene.TurntableCamera() self.radius = 2.0 mesh = create_sphere(20, 20, radius=self.radius) vertices = mesh.get_vertices() tris = mesh.get_faces() cl = np.linspace(-self.radius, self.radius, 6 + 2)[1:-1] self.iso = scene.visuals.Isoline(vertices=vertices, tris=tris, data=vertices[:, 2], levels=cl, color_lev='autumn', parent=self.view.scene) # Add a 3D axis to keep us oriented scene.visuals.XYZAxis(parent=self.view.scene)
def __init__(self): scene.SceneCanvas.__init__(self, keys=None) self.size = 800, 600 self.unfreeze() self.view = self.central_widget.add_view() self.radius = 2.0 self.view.camera = 'turntable' mesh = create_sphere(20, 20, radius=self.radius) vertices = mesh.get_vertices() tris = mesh.get_faces() cl = np.linspace(-self.radius, self.radius, 6 + 2)[1:-1] self.iso = scene.visuals.Isoline(vertices=vertices, tris=tris, data=vertices[:, 2], levels=cl, color_lev='autumn', parent=self.view.scene) self.freeze() # Add a 3D axis to keep us oriented scene.visuals.XYZAxis(parent=self.view.scene)
def __init__(self): scene.SceneCanvas.__init__(self, keys='interactive') self.size = 800, 600 self.view = self.central_widget.add_view() self.view.set_camera('turntable', mode='perspective', up='z', distance=5) self.radius = 2.0 mesh = create_sphere(20, 20, radius=self.radius) vertices = mesh.get_vertices() tris = mesh.get_faces() cl = np.linspace(-self.radius, self.radius, 6 + 2)[1:-1] self.iso = scene.visuals.Isoline(vertices=vertices, tris=tris, data=vertices[:, 2], levels=cl, color_lev='autumn', parent=self.view.scene) # Add a 3D axis to keep us oriented scene.visuals.XYZAxis(parent=self.view.scene)
from vispy import app, scene from vispy.geometry.generation import create_sphere import sys # Create a canvas with a 3D viewport canvas = scene.SceneCanvas(keys='interactive') canvas.show() view = canvas.central_widget.add_view() cols = 10 rows = 10 radius = 2 nbr_level = 20 mesh = create_sphere(cols, rows, radius=radius) vertices = mesh.get_vertices() tris = mesh.get_faces() cl = np.linspace(-radius, radius, nbr_level + 2)[1:-1] scene.visuals.Isoline(vertices=vertices, tris=tris, data=vertices[:, 2], levels=cl, color_lev='winter', parent=view.scene) # Add a 3D axis to keep us oriented scene.visuals.XYZAxis(parent=view.scene)
from vispy.geometry.generation import create_sphere import sys # Create a canvas with a 3D viewport canvas = scene.SceneCanvas(keys='interactive', title='Isocurve for Triangular Mesh Example') canvas.show() view = canvas.central_widget.add_view() cols = 10 rows = 10 radius = 2 nbr_level = 20 mesh = create_sphere(cols, rows, radius=radius) vertices = mesh.get_vertices() tris = mesh.get_faces() cl = np.linspace(-radius, radius, nbr_level+2)[1:-1] scene.visuals.Isoline(vertices=vertices, tris=tris, data=vertices[:, 2], levels=cl, color_lev='winter', parent=view.scene) # Add a 3D axis to keep us oriented scene.visuals.XYZAxis(parent=view.scene) view.camera = scene.TurntableCamera() view.camera.set_range((-1, 1), (-1, 1), (-1, 1)) if __name__ == '__main__' and sys.flags.interactive == 0: