<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Georgia, sans-serif;">
<div>If you just wanted to display the Wulff net, this code would do it:</div>
<div><br>
</div>
<div>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#!/usr/bin/env python</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# This example creates a simple stereographic projection of a portion of a</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# sphere. I have taken a lot of the code from the "ExpCos.py" demo program on</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# the GitHub site:</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# https://github.com/Kitware/VTK/blob/master/Examples/Modelling/Python/expCos.py</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="color: #d53bd3">import</span> sys, vtk</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(213, 59, 211);">
from<span style="color: #000000"> math </span>import<span style="color: #000000"> *</span></p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#------------------------------------------------------------------------------#</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#                set up a plane in the center of the view area                 #</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#------------------------------------------------------------------------------#</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">plane = vtk.vtkPlaneSource()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">plane.SetXResolution(<span style="color: #ce7924">20</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">plane.SetYResolution(<span style="color: #ce7924">20</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">plane.SetCenter(<span style="color: #ce7924">0.</span>, -<span style="color: #ce7924">0.5</span>,
<span style="color: #ce7924">0.</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">transform = vtk.vtkTransform()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">transform.Scale(pi, pi,
<span style="color: #ce7924">1</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">scale_transform = vtk.vtkTransformPolyDataFilter()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">scale_transform.SetInputConnection(plane.GetOutputPort())</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">scale_transform.SetTransform(transform)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">scale_transform.Update()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# Perform the stereographic projection directly on the points in the plane</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# above. This assumes that the x coordinate is the azimuthal angle, and is in</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# the range (-pi, pi), and that the y coordinate is the altitude angle, in the</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
# range (-pi/2, pi/2).</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">input_pd  = scale_transform.GetOutputDataObject(<span style="color: #ce7924">0</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_pd = vtk.vtkPolyData()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_pd.CopyStructure(input_pd)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">new_points = vtk.vtkPoints()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;"><span style="color: #afad24">for</span> i
<span style="color: #afad24">in</span> <span style="color: #34bbc7"><b>range</b></span>(input_pd.GetNumberOfPoints()):</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">  location   = input_pd.GetPoint(i)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">  phi, theta = location[:<span style="color: #ce7924">2</span>]</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">  x = sin(phi)*sin(theta)/(<span style="color: #ce7924">1</span> - cos(phi)*sin(theta))</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">  y = cos(theta)/(<span style="color: #ce7924">1</span> - cos(phi)*sin(theta))</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">  new_points.InsertPoint(i, x, y,
<span style="color: #ce7924">0.</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_pd.SetPoints(new_points)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edges = vtk.vtkExtractEdges()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edges.SetInputData(stereo_pd)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edge_mapper = vtk.vtkPolyDataMapper()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edge_mapper.SetInputConnection(stereo_edges.GetOutputPort())</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_mapper = vtk.vtkPolyDataMapper()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_mapper.SetInputData(stereo_pd)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_actor = vtk.vtkActor()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_actor.SetMapper(stereo_map_mapper)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_actor.GetProperty().SetColor(<span style="color: #ce7924">0.9020</span>,
<span style="color: #ce7924">0.6627</span>, <span style="color: #ce7924">1.0000</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_map_actor.GetProperty().SetOpacity(<span style="color: #ce7924">0.4</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edge_actor = vtk.vtkActor()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edge_actor.SetMapper(stereo_edge_mapper)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">stereo_edge_actor.GetProperty().SetColor(<span style="color: #ce7924">0.1882</span>,
<span style="color: #ce7924">0.1294</span>, <span style="color: #ce7924">1.0000</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#------------------------------------------------------------------------------#</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#                               rendering stuff                                #</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(52, 187, 199);">
#------------------------------------------------------------------------------#</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">ren = vtk.vtkRenderer()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">ren.AddActor(stereo_map_actor)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">ren.AddActor(stereo_edge_actor)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">renWin = vtk.vtkRenderWindow()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">renWin.AddRenderer(ren)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">renWin.SetSize(<span style="color: #ce7924">500</span>,
<span style="color: #ce7924">500</span>)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">iren = vtk.vtkRenderWindowInteractor()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">iren.SetRenderWindow(renWin)</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br>
</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">ren.ResetCamera()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">iren.Initialize()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">renWin.Render()</p>
<p style="margin: 0px; font-size: 11px; font-family: Menlo;">iren.Start()</p>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Luis Vieira <<a href="mailto:luis.vieira@vektore.com">luis.vieira@vektore.com</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, January 13, 2015 at 8:12 AM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a>" <<a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a>><br>
<span style="font-weight:bold">Subject: </span>[vtkusers] Stereograpic sphere<br>
</div>
<div><br>
</div>
<div>
<div bgcolor="#FFFFFF" text="#000000">Dear VTKers,<br>
<br>
 I am beginner in VTK and I am struggling to plot a Stereonet graph. I have been trying vtkPolydata , vtkPoints, vtkParametricSpline and vtkParametricFunctionSource. I have tried vtkCharXY. However I have no success. Any ideas to suggest where I could start
 and which vtk classes will help me to develop a semi-sphere? <br>
<br>
Thank you so much.<br>
<br>
<img shrinktofit="true" src="cid:part1.00090300.03070201@vektore.com" alt=""><img shrinktofit="true" src="cid:part2.01000209.04080907@vektore.com" alt=""><br>
<img src="cid:part3.00060700.04090401@vektore.com" alt=""><img src="cid:part4.00080402.03030802@vektore.com" alt=""></div>
</div>
</span>
</body>
</html>