
Re: Help needed on how plot a stereographic projection
Posted:
May 31, 2013 3:16 AM


You may wish to take a look at David Park's "Presentations" addon:
http://home.comcast.net/~djmpark/DrawGraphicsPage.html
This includes, among a host of useful things, a builtin stereographic projection function as well as builtin 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.standrews.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.mathematicajournal.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 (s1))/.{s> I \[Omega]}],{\[Omega],1000,1000,0.1}]; > > > Show[ContourPlot3D[x^2+y^2+(z1/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 5491020 (H) University of Massachusetts 413 5452838 (W) 710 North Pleasant Street fax 413 5451801 Amherst, MA 010039305

