# [vtkusers] Stereograpic sphere

Meehan, Bernard MEEHANBT at nv.doe.gov
Tue Jan 13 18:15:12 EST 2015

If you just wanted to display the Wulff net, this code would do it:

#!/usr/bin/env python

# This example creates a simple stereographic projection of a portion of a

# sphere. I have taken a lot of the code from the "ExpCos.py" demo program on

# the GitHub site:

# https://github.com/Kitware/VTK/blob/master/Examples/Modelling/Python/expCos.py

import sys, vtk

from math import *

#------------------------------------------------------------------------------#

#                set up a plane in the center of the view area                 #

#------------------------------------------------------------------------------#

plane = vtk.vtkPlaneSource()

plane.SetXResolution(20)

plane.SetYResolution(20)

plane.SetCenter(0., -0.5, 0.)

transform = vtk.vtkTransform()

transform.Scale(pi, pi, 1)

scale_transform = vtk.vtkTransformPolyDataFilter()

scale_transform.SetInputConnection(plane.GetOutputPort())

scale_transform.SetTransform(transform)

scale_transform.Update()

# Perform the stereographic projection directly on the points in the plane

# above. This assumes that the x coordinate is the azimuthal angle, and is in

# the range (-pi, pi), and that the y coordinate is the altitude angle, in the

# range (-pi/2, pi/2).

input_pd  = scale_transform.GetOutputDataObject(0)

stereo_pd = vtk.vtkPolyData()

stereo_pd.CopyStructure(input_pd)

new_points = vtk.vtkPoints()

for i in range(input_pd.GetNumberOfPoints()):

location   = input_pd.GetPoint(i)

phi, theta = location[:2]

x = sin(phi)*sin(theta)/(1 - cos(phi)*sin(theta))

y = cos(theta)/(1 - cos(phi)*sin(theta))

new_points.InsertPoint(i, x, y, 0.)

stereo_pd.SetPoints(new_points)

stereo_edges = vtk.vtkExtractEdges()

stereo_edges.SetInputData(stereo_pd)

stereo_edge_mapper = vtk.vtkPolyDataMapper()

stereo_edge_mapper.SetInputConnection(stereo_edges.GetOutputPort())

stereo_map_mapper = vtk.vtkPolyDataMapper()

stereo_map_mapper.SetInputData(stereo_pd)

stereo_map_actor = vtk.vtkActor()

stereo_map_actor.SetMapper(stereo_map_mapper)

stereo_map_actor.GetProperty().SetColor(0.9020, 0.6627, 1.0000)

stereo_map_actor.GetProperty().SetOpacity(0.4)

stereo_edge_actor = vtk.vtkActor()

stereo_edge_actor.SetMapper(stereo_edge_mapper)

stereo_edge_actor.GetProperty().SetColor(0.1882, 0.1294, 1.0000)

#------------------------------------------------------------------------------#

#                               rendering stuff                                #

#------------------------------------------------------------------------------#

ren = vtk.vtkRenderer()

renWin = vtk.vtkRenderWindow()

renWin.SetSize(500, 500)

iren = vtk.vtkRenderWindowInteractor()

iren.SetRenderWindow(renWin)

ren.ResetCamera()

iren.Initialize()

renWin.Render()

iren.Start()

From: Luis Vieira <luis.vieira at vektore.com<mailto:luis.vieira at vektore.com>>
Date: Tuesday, January 13, 2015 at 8:12 AM
To: "vtkusers at vtk.org<mailto:vtkusers at vtk.org>" <vtkusers at vtk.org<mailto:vtkusers at vtk.org>>
Subject: [vtkusers] Stereograpic sphere

Dear VTKers,

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?

Thank you so much.

[cid:part1.00090300.03070201 at vektore.com][cid:part2.01000209.04080907 at vektore.com]
[cid:part3.00060700.04090401 at vektore.com][cid:part4.00080402.03030802 at vektore.com]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150113/1b7fcc0c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT00001.png
Type: image/png
Size: 10036 bytes
Desc: ATT00001.png
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150113/1b7fcc0c/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ATT00002.png
Type: image/png
Size: 10252 bytes
Desc: ATT00002.png
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150113/1b7fcc0c/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hfggjfca.png
Type: image/png
Size: 14514 bytes
Desc: hfggjfca.png
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150113/1b7fcc0c/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: idfdibda.png
Type: image/png
Size: 97134 bytes
Desc: idfdibda.png
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150113/1b7fcc0c/attachment-0003.png>