Re: Help needed on how plot a stereographic projection
- To: mathgroup at smc.vnet.net
- Subject: [mg130978] Re: Help needed on how plot a stereographic projection
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Fri, 31 May 2013 03:38:18 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <20130530101424.F340969EC@smc.vnet.net>
Use of ComplexExpand on real values (output of Re, Im, or Abs) is unnecessary. ClearAll[stereographicProjection]; stereographicProjection::usage = "stereographicProjection[complexnumber] will return the stereoprojection of \ a complex point considering the Riemann sphere"; SyntaxInformation[stereographicProjection] = {"ArgumentsPattern" -> {_}}; stereographicProjection[complexnumber_] := Module[ {abs2 = Abs[complexnumber]^2}, If[abs2 == Infinity, {0, 0, 1}, {Re[complexnumber]/(1 + abs2), Im[complexnumber]/(1 + abs2), abs2/(1 + abs2)}]] tab3 = Table[ stereographicProjection[ (s + 1)/(s^2 (s - 1)) /. {s -> I w}], {w, -1000, 1000, 0.1}] // Quiet; Show[ ParametricPlot3D[ {Cos[p] Sin[t], Sin[p] Sin[t], 1 + Cos[t]}/2, {p, 0, 2 Pi}, {t, 0, Pi}, PlotStyle -> Opacity[0.5], Mesh -> Automatic], Graphics3D[{ Darker[Magenta], AbsoluteThickness[3], Tooltip[Line[tab3], "Projection of (s+1)/(s^2 (s-1))"], Red, PointSize[.02], Tooltip[Point[{stereographicProjection[-1]}], "Projection of -1"]}], ImageSize -> Large, AxesLabel -> {"x", "y", "z"}, PlotRange -> {{-1, 1}, {-1, 1}, {0, 1}}, BoxRatios -> {1, 1, 1/2}] Bob Hanlon On Thu, May 30, 2013 at 6:14 AM, Eduardo M. A. M. Mendes < emammendes at gmail.com> wrote: > 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 > > >
- References:
- Help needed on how plot a stereographic projection
- From: "Eduardo M. A. M. Mendes" <emammendes@gmail.com>
- Help needed on how plot a stereographic projection