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*)

Parallel curves gallery

Hypotrochoid parallel beauty

Clear[ myOffset, myStyle];
myOffset = Table[ i, {i,-3 , 3, 6/18}];
myStyle = Table[ {Hue[i], PointSize[.007]}, {i,0,1, 1/Length@myOffset}];

ParaPlot[
	Rotate[ Hypocycloid[3][t], Pi/2],
	{t,0, 2 Pi, 2 Pi/(3 40)},
	ParallelCurveOffset->myOffset,
	PlotDot->False, PlotCurve->False,
	DotStyle->myStyle, 	LineStyle->{GrayLevel[0]},
	Axes->False, AspectRatio->Automatic
];Clear[ myOffset, myStyle];

Clear[ myOffset, myStyle];

myOffset = Table[ i, {i,-3 , 3, 6/100}];
myStyle = Table[ {Hue[i], PointSize[.007]}, {i,0,1, 1/Length@myOffset}];

ParaPlot[
	Rotate[ Hypocycloid[3][t], Pi/2],
	{t,0, 2 Pi, 2 Pi/(3*40)},
	ParallelCurveOffset->myOffset,
	PlotDot->False, PlotCurve->False,
	DotStyle->myStyle, 	LineStyle->{GrayLevel[0]},
	Axes->False, AspectRatio->Automatic
];Clear[ myOffset, myStyle];

Parallels of Lemniscate of Bernoulli

Clear[formulas, gp1, gp2]
formulas = 
      Parallel[LemniscateOfBernoulli[][t], t, 
        DeleteCases[Range[-(19/10), (19/10), (1/10)], 0]]; 
gp1 = 
        First[ParametricPlot[
            Evaluate[
              Take[formulas, {1, 19}]], {t, (π/2), ((3 π)/2)}, 
            PlotStyle -> Automatic]];
gp2 = 
        First[ParametricPlot[
            Evaluate[
              Take[formulas, {20, 38}]], {t, -(π/2), (π/2)}, 
            PlotStyle -> Automatic]];
gp3 = 
        First@ParametricPlot[
            Evaluate@LemniscateOfBernoulli[][t], {t, -0, 
              2  π}];
Show[Graphics[{Hue[0], gp1, Hue[ .65], gp2, GrayLevel[0.5], gp3}], 
        Axes -> False, AspectRatio -> Automatic];
Clear[formulas, gp1, gp2]

ParaPlot[ LemniscateOfBernoulli[][t],
	{t, 0, 2 Pi, 2 Pi/80},
	ParallelCurveOffset->Range[0,2,.2],
	PlotCurve->False, PlotDot->False,
	DotStyle->{Hue[.9],Hue[.7],Hue[0]},
	Axes->False,
	AspectRatio->Automatic, PlotRange->All];

leaved rose

ParaPlot[Rose[3][t], {t, 0, π,  .015}, 
      ParallelCurveOffset -> { .18,  .4,  .6}, PlotDot -> False, 
      DotStyle -> {Hue[0], Hue[ .3], Hue[ .7]}, 
      AspectRatio -> Automatic, PlotRange -> All];

(* Hypotrochoid parallel beauty *)
ParaPlot[
	Hypotrochoid[1,1/5,.13][t],
	{t, 0, 2 Pi, 2 Pi/(5 30)},
	ParallelCurveOffset->Table[i,{i,-.5,.5,.1}],
	Axes->False, PlotDot->False, 
	DotStyle->Table[Hue[Random[]],{20}],
	AspectRatio->Automatic
];

ParaPlot[ 
	{(0.75*(2*Cos[t] + Cos[2*t]))/(5 + 4*Cos[3*t]),
  (6.*Cos[t/2]*Sin[t/2]^3)/(5 + 4*Cos[3*t])},
	{t, 0, 2 Pi, 2 Pi/(3 100)},
	ParallelCurveOffset->{.1},
	PlotStyle->{{Hue[.65]}, {Hue[.0], Thickness[.005]}},
	AspectRatio->Automatic
];

ParaPlot[ 
	Parallel[
		{(0.75*(2*Cos[t] + Cos[2*t]))/(5 + 4*Cos[3*t]),
  (6.*Cos[t/2]*Sin[t/2]^3)/(5 + 4*Cos[3*t])},
  		t, Range[0,.5,.05]
	],
	{t, 0, 2 Pi},
	PlotStyle->{{Hue[.65]}, {Hue[.0], Thickness[.005]}},
	AspectRatio->Automatic
];

Animation

Clear[myList]; 
myList = Parallel[Rose[3][t], t, Range[-1, 2,  .1]]; 
Do[
        ParametricPlot[
          Evaluate[{Rose[3][t], 
              myList[[i]]}], {t, 
            0, π}, AspectRatio -> Automatic, 
          PlotRange -> {{-1, 1}, {-1, 1}} 2.1, 
          Ticks -> None, Axes -> False, 
          PlotStyle -> {Hue[ .7], Hue[0]}], {i, 1, 31}];