def vertices_triangles(a, b, c):

    edge_list = []
    vert_list = [[0, 0, c], [0, 0, c], [0, 0, c], [0, 0, c]]

    my_polydata = vtk.vtkPolyData()  #Initialize the polydata
    for v in v_range:
        z_new = c * np.cos(np.deg2rad(v))
        n = len(vert_list)
        vert_list.append([a * np.sin(np.deg2rad(v)), 0.0, z_new])
        vert_list.append([0.0, b * np.sin(np.deg2rad(v)), z_new])
        vert_list.append([-1 * a * np.sin(np.deg2rad(v)), 0.0, z_new])
        vert_list.append([0.0, -1 * b * np.sin(np.deg2rad(v)), z_new])
        edge_list.append([n - 4, n, n - 3])
        edge_list.append([n, n + 1, n - 3])
        edge_list.append([n - 3, n + 1, n - 2])
        edge_list.append([n + 1, n + 2, n - 2])
        edge_list.append([n - 2, n + 2, n - 1])
        edge_list.append([n + 2, n + 3, n - 1])
        edge_list.append([n - 1, n + 3, n - 4])
        edge_list.append([n + 3, n, n - 4])

    #Converting the list to an array
    my_vertices = np.array(vert_list)
    my_triangles = np.array(edge_list)

    #Converting the vertices and faces to a Polydata
    ut_vtk.set_polydata_vertices(my_polydata, my_vertices)
    ut_vtk.set_polydata_triangles(my_polydata, my_triangles.astype('i8'))

    # Setting colors for the sphere
    sphere_vertices = ut_vtk.get_polydata_vertices(my_polydata)
    colors = sphere_vertices * 255
    ut_vtk.set_polydata_colors(my_polydata, colors)

    sphere_actor = ut_vtk.get_actor_from_polydata(my_polydata)

    return sphere_actor
Пример #2
0
"""
add color based on vertices position
"""

cube_vertices = ut_vtk.get_polydata_vertices(cube_polydata)
colors = cube_vertices * 255
ut_vtk.set_polydata_colors(cube_polydata, colors)

print("new surface colors")
print(ut_vtk.get_polydata_colors(cube_polydata))
"""
Visualize surfaces
"""

# get vtkActor
cube_actor = ut_vtk.get_actor_from_polydata(cube_polydata)

# renderer and scene
renderer = window.Renderer()
renderer.add(cube_actor)
renderer.set_camera(position=(10, 5, 7), focal_point=(0.5, 0.5, 0.5))
renderer.zoom(3)

# display
# window.show(renderer, size=(600, 600), reset_camera=False)
window.record(renderer, out_path='cube.png', size=(600, 600))
"""
.. figure:: cube.png
   :align: center

   An example of a simple surface visualized with DIPY.
        vert1 = (resolution + 1) * hor + ver
        vert2 = (resolution + 1) * (hor + 1) + ver
        vert3 = (resolution + 1) * hor + (ver + 1)
        vert4 = (resolution + 1) * (hor + 1) + (ver + 1)
        edge_list.append([vert1, vert2, vert3])
        edge_list.append([vert2, vert4, vert3])
        #four points are (hor, ver) (hor+1, ver) (hor, ver+1) (hor+1, ver+1)
#        make_quad(11*hor + ver, 11*(hor+1) + ver, 11*hor + (ver+1), 11*(hor+1) + (ver+1))
my_vertices = np.array(vert_list)
my_triangles = np.array(edge_list)

import dipy.viz.utils as ut_vtk
from dipy.viz import window

import vtk

my_polydata = vtk.vtkPolyData()

ut_vtk.set_polydata_vertices(my_polydata, my_vertices)
ut_vtk.set_polydata_triangles(my_polydata, my_triangles.astype('i8'))

sphere_vertices = ut_vtk.get_polydata_vertices(my_polydata)
colors = sphere_vertices * 255
ut_vtk.set_polydata_colors(my_polydata, colors)

sphere_actor = ut_vtk.get_actor_from_polydata(my_polydata)

# renderer and scene
renderer = window.Renderer()
renderer.add(sphere_actor)
window.show(renderer, size=(600, 600), reset_camera=False)
Пример #4
0
add color based on vertices position
"""

cube_vertices = ut_vtk.get_polydata_vertices(cube_polydata)
colors = cube_vertices * 255
ut_vtk.set_polydata_colors(cube_polydata, colors)

print("new surface colors")
print(ut_vtk.get_polydata_colors(cube_polydata))

"""
Visualize surfaces
"""

# get vtkActor
cube_actor = ut_vtk.get_actor_from_polydata(cube_polydata)

# renderer and scene
renderer = window.Renderer()
renderer.add(cube_actor)
renderer.set_camera(position=(10, 5, 7), focal_point=(0.5, 0.5, 0.5))
renderer.zoom(3)

# display
# window.show(renderer, size=(600, 600), reset_camera=False)
window.record(renderer, out_path='cube.png', size=(600, 600))

"""
.. figure:: cube.png
   :align: center