Date: May 30, 2013 6:08 AM
Author: emammendes@gmail.com
Subject: Help needed on how plot a stereographic projection

Hello

Although I have been using Mathematica for more than year, I feel that I haven't barely scratched the surface of what Mathematica can do.

The following example gives the result that I need but the outcome is ugly and slow.

ClearAll[stereographicProjection];

stereographicProjection::usage="stereographicProjection[complexnumber] will return the stereoprojection of a complex point considering the Riemann sphere";

SyntaxInformation[stereographicProjection]={"ArgumentsPattern"->{_}};

stereographicProjection[complexnumber_]:=
Module[{a1,a2,a3},
If[ComplexExpand[Abs[complexnumber]]==Infinity,
a1=0;a2=0;a3=1,
=
a1=ComplexExpand[Re[complexnumber]]/(1+ComplexExpand[Abs[complexnumber]]^2);

a2=ComplexExpand[Im[complexnumber]]/(1+ComplexExpand[Abs[complexnumber]]^2);
=
a3=ComplexExpand[Abs[complexnumber]]^2/(1+ComplexExpand[Abs[complexnumber]]^2)];
{a1,a2,a3}
]

tab3=Table[stereographicProjection[(s+1)/(s^2 (s-1))/.{s-> I \[Omega]}],{\[Omega],-1000,1000,0.1}];

=
Show[ContourPlot3D[x^2+y^2+(z-1/2)^2==(1/2)^2,{x,-1,1},{y,-1,1},{z,0,1},Mesh->Automatic,AxesLabel-> =
{"x","y","z"},BoxRatios->{1,1,1/2},ImageSize-> =
Large],ListPointPlot3D[tab3,PlotStyle->Directive[PointSize[Large],Magenta],ImageSize-> =
Large],ListPointPlot3D[{stereographicProjection[-1]},PlotStyle->Directive[PointSize[0.02],Red]],ImageSize-> Large]

a) Is there another way of getting the same plot?
b) How to get the points of tab3 connected?
c) How to change the opacity of the sphere?


Improvements, suggestion and critiscims are welcome.

Many thanks

Ed