コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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()
コード例 #4
0
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))
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
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)
コード例 #9
0
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: