Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.math.mathematica

Topic: Help needed on how plot a stereographic projection
Replies: 7   Last Post: May 31, 2013 3:18 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Bob Hanlon

Posts: 906
Registered: 10/29/11
Re: Help needed on how plot a stereographic projection
Posted: May 31, 2013 3:17 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply


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




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.