# -*- coding: utf-8 -*- from enthought.tvtk.api import tvtk from utility import show_actors from tvtk_cut_plane import read_data if __name__ == "__main__": plot3d = read_data() plot3d.add_function(153) plot3d.update() contours = tvtk.ContourFilter(input = plot3d.output) contours.set_value(0, 0.32) mapper = tvtk.PolyDataMapper(input = contours.output, scalar_range = plot3d.output.point_data.get_array(4).range, scalar_mode = "use_point_field_data") mapper.color_by_array_component("VelocityMagnitude", 0) actor = tvtk.Actor(mapper = mapper) actor.property.opacity = 0.6 # StructuredGrid网格的外框 outline = tvtk.StructuredGridOutlineFilter(input = plot3d.output) outline_mapper = tvtk.PolyDataMapper(input = outline.output) outline_actor = tvtk.Actor(mapper = outline_mapper) outline_actor.property.color = 0.3, 0.3, 0.3 win, gui = show_actors([actor, outline_actor]) gui.start_event_loop()
# 流线 streamer = tvtk.StreamLine( input = plot3d.output, source = sphere.output, step_length = 0.0001, integration_direction = "forward", integrator = tvtk.RungeKutta4()) tube = tvtk.TubeFilter( input = streamer.output, radius = 0.05, number_of_sides = 6, vary_radius = "vary_radius_by_scalar") tube_mapper = tvtk.PolyDataMapper( input = tube.output, scalar_range = plot3d.output.point_data.scalars.range) tube_actor = tvtk.Actor(mapper = tube_mapper) tube_actor.property.backface_culling = True # StructuredGrid网格的外框 outline = tvtk.StructuredGridOutlineFilter(input = plot3d.output) outline_mapper = tvtk.PolyDataMapper(input = outline.output) outline_actor = tvtk.Actor(mapper = outline_mapper) outline_actor.property.color = 0.3, 0.3, 0.3 win, gui = show_actors([outline_actor, sphere_actor, tube_actor, arrows_actor]) gui.start_event_loop() #plot3d.output.point_data.scalars = np.sqrt(np.sum(plot3d.output.point_data.vectors.to_array()**2, axis=-1))
if __name__ == "__main__": plot3d = read_data() # 创建颜色映射表 lut = tvtk.LookupTable() import pylab as pl lut.table = pl.cm.cool(np.arange(0, 256)) * 255 # 显示StructuredGrid中的一个网格面 plane = tvtk.StructuredGridGeometryFilter(input=plot3d.output, extent=(0, 100, 0, 100, 6, 6)) plane_mapper = tvtk.PolyDataMapper(lookup_table=lut, input=plane.output) plane_mapper.scalar_range = plot3d.output.scalar_range plane_actor = tvtk.Actor(mapper=plane_mapper) # 做一个平面切面 cut_plane = tvtk.Plane(origin=plot3d.output.center, normal=(-0.287, 0, 0.9579)) cut = tvtk.Cutter(input=plot3d.output, cut_function=cut_plane) cut_mapper = tvtk.PolyDataMapper(input=cut.output, lookup_table=lut) cut_actor = tvtk.Actor(mapper=cut_mapper) # StructuredGrid网格的外框 outline = tvtk.StructuredGridOutlineFilter(input=plot3d.output) outline_mapper = tvtk.PolyDataMapper(input=outline.output) outline_actor = tvtk.Actor(mapper=outline_mapper) outline_actor.property.color = 0.3, 0.3, 0.3 win, gui = show_actors([plane_actor, cut_actor, outline_actor]) gui.start_event_loop()
# 创建颜色映射表 lut = tvtk.LookupTable() import pylab as pl lut.table = pl.cm.cool(np.arange(0,256))*255 # 显示StructuredGrid中的一个网格面 plane = tvtk.StructuredGridGeometryFilter( input = plot3d.output, extent = (0, 100, 0, 100, 6, 6) ) plane_mapper = tvtk.PolyDataMapper(lookup_table = lut, input = plane.output) plane_mapper.scalar_range = plot3d.output.scalar_range plane_actor = tvtk.Actor(mapper = plane_mapper) # 做一个平面切面 cut_plane = tvtk.Plane(origin = plot3d.output.center, normal=(-0.287, 0, 0.9579)) cut = tvtk.Cutter(input = plot3d.output, cut_function = cut_plane) cut_mapper = tvtk.PolyDataMapper(input = cut.output, lookup_table = lut) cut_actor = tvtk.Actor(mapper = cut_mapper) # StructuredGrid网格的外框 outline = tvtk.StructuredGridOutlineFilter(input = plot3d.output) outline_mapper = tvtk.PolyDataMapper(input = outline.output) outline_actor = tvtk.Actor(mapper = outline_mapper) outline_actor.property.color = 0.3, 0.3, 0.3 win, gui = show_actors([plane_actor, cut_actor, outline_actor]) gui.start_event_loop()