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