Note

This Mathematica notebook is from the WWW project A Visual Dictionary of Special Plane Curves. Copyright © 1995-2000 by Xah Lee. (http://xahlee.org/)

Packages and Initializations

Needs["ParaPlot`"]
(*MathSource Item:0207-986*)

Needs["PlaneCurveFormulas`"]


Needs["PlaneCurveGenerator`"]

Needs["Graphics`ImplicitPlot`"]
(*MathSource Item:0200-529*)

$HistoryLength=10;

Inversion

Given a point P, the inversion of P with respect to a given circle of radius r and center O is a point Q on the radial line[O,P] such that distance[O,P] * distance[O,Q] == r^2.

Inversion[{x, y}, {{a, b}, k}]

Graphics Gallery

two inversions of a sinusoidal curve

\(Clear[inv1GP, \ inv2GP]
\)
\(\(inv1GP\  = 
	
        First@\ ParaPlot[\  .2\ {t, \ 2\ Cos[t]} + \ {0, 
                1}, 
	{t, \(-5\)\ Pi, \ 5\ Pi, \ Pi/15}, 
	
            InversionCircle -> {{0, 0}, 1}, 
	PlotDot -> False, 
	
            PlotCurve -> False, 
	
            DotStyle -> {{Hue[0], \ PointSize[ .005]}}, 
	
            AspectRatio -> Automatic, 
	
            PlotRange -> {{\(-3\), \ 3}, \ {\(-1.1\), \ 2}}
];\)
\)
\(\(inv2GP\  = 
	
        First@\ ParaPlot[\  .2\ {t, \ 2\ Cos[t]} + \ {0, 
                1}, 
	{t, \(-8\)\ Pi, \ 2\ Pi, \ Pi/100}, 
	
            InversionCircle -> {{\(-2\), 1.1},  .7}, 
	PlotDot -> False, \ 
            PlotCurve -> False, 
	
            DotStyle -> {{Hue[0], \ PointSize[ .005]}}, 
	
            AspectRatio -> Automatic, 
	
            PlotRange -> {{\(-5\), \ 1}, \ {\(-1.1\), \ 2}}
];\)
\)
\(\(ParaPlot[\  .2\ {t, \ 2\ Cos[t]} + \ {0, 1}, 
	{t, \(-8\)\ Pi, \ 
          4\ Pi, \ Pi/100}, 
	PlotDot -> False, 
	PlotPoints -> 60, 
	
        AspectRatio -> Automatic, 
	Axes -> False, 
	
        PlotRange -> {{\(-5\), \ 2}, \ {\(-1.1\), \ 2}}, 
	
        Epilog -> {inv1GP, \ inv2GP}
];\)\)

An interesting graphics based on inverse and pedal of a Cissoid of Diocles.

\(\(\( (*\ "the fly"\ *) \)\(
\)\(
\)\(\(Clear[invGP];\)


    \(invGP\  = \ 
        First@
	
          ParaPlot[\ 
            Rotate[\ \(CissoidOfDiocles[]\)[t], \ 
              Pi/2\ ], 
	{t, \ \(-Pi\)/2, \ Pi/2, \ Pi/80}, 
	
            PlotDot -> False, 
	PlotCurve -> False, 
	
            InversionCircle -> {{0, 0}, 2}, 
	
            DotStyle -> {{RGBColor[Random[], Random[], \ Random[]], 
                  PointSize[ .005]}}, 
	
            DisplayFunction -> Identity	
];\)


    \(invGP\  = \ Cases[invGP, \ Point[__], \ \(-1\)];\)


    \(ParaPlot[\ 
        Rotate[\ \(CissoidOfDiocles[]\)[t], \ 
          Pi/2\ ], 
	{t, \ \(-Pi\)/2 + \ Pi/60, \ Pi/2 - Pi/60, \ 
          Pi/30}, 
	PlotDot -> False, 
	PedalPoint -> {0, 1}, 
	
        CurveColorFunction -> {Hue[ .7,  .75, 1] &}, 
	
        LineStyle -> {{Thickness[ .002], 
              RGBColor[Random[], Random[], \ Random[]]}}, 
	
        DotStyle -> {{Hue[0], PointSize[ .005]}}, 
	
        AspectRatio -> Automatic, 
	Axes -> False, 
	
        PlotRange -> {{\(-1\), 1}\ 3, {\(- .5\), 2.5}}, 
	
        Background -> Hue[0, 0, 0], 
	
        Prolog -> {{GrayLevel[ .8], Disk[{0, 0}, 2]}, 
		{Hue[ .18], \ 
              Circle[{0, 0}, 2]}, 
		{Hue[0], \ PointSize[ .007], \ 
              invGP}
	}
];\)\)\)\)

movies

inversion of moving circles and lines

\(\(\( (*\ inversion\ of\ a\ moving\ circle\ *) \)\(
\)\(Do[
	
      ParaPlot[\ {Cos@t, \ Sin@t}\  + \ {0, i}, 
		{t, \ \(-Pi\), \ Pi, \ 
          2\ Pi/40}, 
		InversionCircle -> {{0, 0}, 1}, 
		PlotDot -> 
          True, 
		PlotCurve -> 
          False, 
		CurveColorFunction -> {Hue[ .7,  .7, 
                1] &}, 
		AspectRatio -> 
          Automatic, 
		PlotRange -> {{\(-2\), 2}, {\(-1\), 4}} 
            1.05, 
		Ticks -> {Range[\(-5\), 5], 
            Range[\(-5\), 5]}
	], 
	{i, 0, 2.1, 2.1/5}
]\)\)\)

\(\(\( (*\ inversion\ of\ a\ moving\ line\ *) \)\(
\)\(Do[
	
      ParaPlot[\ {t, \ i}, 
		{t, \(-20\), \ 
          20, \  .2}, 
		InversionCircle -> {{0, 0}, 1}, 
		PlotDot -> 
          True, 
		PlotCurve -> 
          False, 
		CurveColorFunction -> {Hue[ .7,  .7, 
                1] &}, 
		AspectRatio -> 
          Automatic, 
		PlotRange -> {{\(-2\), 2}, {\(-1.1\), 
              2.1}}, 
		Ticks -> {Range[\(-5\), 5], 
            Range[\(-5\), 5]}
	], 
	{i, 0, 2, 2/5}
]\)\)\)

Inverse of quadrafolium

Inverse of quadrafolium with respect to the same center but increasing radius. Change the

frames=5;
Do[
	ParaPlot[ Rose[2][t],
		{t, 0, 2 Pi, 2 Pi/(4 70)},
		InversionCircle->{{0,0},i}, PlotDot->False,
		DotStyle->{{PointSize[.006], Hue[0]}},
		AspectRatio->Automatic,Axes->False,
		PlotRange->{{-1,1}, {-1,1}} (1.05 + 3 i)
	];,
	{i,0.01,1.2, 1.2/frames}
];

e

Needs["Transform2DPlot`"]

Transform2DGraphicsPlot[ 
      Show@Graphics[
          RectangularGrid[{-1, 1,  .1}, {-1, 1,  .1}, {Hue, 
              GrayLevel}], Frame -> True, AspectRatio -> Automatic, 
          Background -> GrayLevel@0], 
      Function[{a, b}, 1/(a + b*I)],  AspectRatio -> Automatic, 
      Background -> GrayLevel@0, Frame -> True]