Date: May 31, 2013 3:16 AM
Author: Murray Eisenberg
Subject: Re: Help needed on how plot a stereographic projection

You may wish to take a look at David Park's "Presentations" add-on:

http://home.comcast.net/~djmpark/DrawGraphicsPage.html

This includes, among a host of useful things, a built-in stereographic
projection function as well as built-in functions for displaying
graphics objects defined directly in terms of complex numbers (i.e.
without your having to tear them apart in to real and imaginary part)
and complex functions, including the Riemann sphere.

Some examples of what's possible with complex numbers and complex
functions, among other things (and aside from those in the extensive
Presentations documentation), are available at

http://www.st-andrews.ac.uk/~pl10/c/djmpark/

(you can view the pdf versions there without needing the package) and in
the paper "Visualizing Complex Functions with the Presentations
Application"

http://www.mathematica-journal.com/issue/v11i2/EisenbergPark.html

written by David and me. That paper, which you may view in static form
in the pdf version, includes an example of using stereographic
projection to lift a complex function to the Riemann sphere.

On May 30, 2013, at 6:14 AM, Eduardo M. A. M. Mendes <emammendes@gmail.com> wrote:

>
> 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
>


---
Murray Eisenberg murray@math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2838 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305