You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.5 KiB
74 lines
1.5 KiB
2 years ago
|
package require vtk
|
||
|
package require vtkinteraction
|
||
|
package require vtktesting
|
||
|
|
||
|
# Create the RenderWindow, Renderer and both Actors
|
||
|
#
|
||
|
vtkRenderer ren1
|
||
|
vtkRenderWindow renWin
|
||
|
renWin AddRenderer ren1
|
||
|
vtkRenderWindowInteractor iren
|
||
|
iren SetRenderWindow renWin
|
||
|
|
||
|
vtkSphereSource sphere
|
||
|
sphere SetPhiResolution 15
|
||
|
sphere SetThetaResolution 30
|
||
|
|
||
|
vtkPlane plane
|
||
|
plane SetNormal 1 0 0
|
||
|
|
||
|
vtkCutter cut
|
||
|
cut SetInputConnection [sphere GetOutputPort]
|
||
|
cut SetCutFunction plane
|
||
|
cut GenerateCutScalarsOn
|
||
|
|
||
|
vtkStripper strip
|
||
|
strip SetInputConnection [cut GetOutputPort]
|
||
|
|
||
|
vtkPoints points
|
||
|
points InsertPoint 0 1 0 0
|
||
|
|
||
|
vtkCellArray lines
|
||
|
lines InsertNextCell 2;#number of points
|
||
|
lines InsertCellPoint 0
|
||
|
lines InsertCellPoint 0
|
||
|
|
||
|
vtkPolyData tip
|
||
|
tip SetPoints points
|
||
|
tip SetLines lines
|
||
|
|
||
|
vtkAppendPolyData appendPD
|
||
|
appendPD AddInput [strip GetOutput]
|
||
|
appendPD AddInput tip
|
||
|
|
||
|
# extrude profile to make coverage
|
||
|
#
|
||
|
vtkRuledSurfaceFilter extrude
|
||
|
extrude SetInputConnection [appendPD GetOutputPort]
|
||
|
extrude SetRuledModeToPointWalk
|
||
|
|
||
|
vtkCleanPolyData clean
|
||
|
clean SetInputConnection [extrude GetOutputPort]
|
||
|
clean ConvertPolysToLinesOff
|
||
|
|
||
|
vtkPolyDataMapper mapper
|
||
|
mapper SetInputConnection [clean GetOutputPort]
|
||
|
mapper ScalarVisibilityOff
|
||
|
|
||
|
vtkActor actor
|
||
|
actor SetMapper mapper
|
||
|
[actor GetProperty] SetOpacity .4
|
||
|
|
||
|
ren1 AddActor actor
|
||
|
renWin SetSize 200 200
|
||
|
|
||
|
renWin Render
|
||
|
# render the image
|
||
|
#
|
||
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
||
|
iren Initialize
|
||
|
|
||
|
# prevent the tk window from showing up then start the event loop
|
||
|
wm withdraw .
|
||
|
|