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`"](*0208-482*)

Needs["PlaneCurveGenerator`"](*0208-314*)

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

$HistoryLength = 10;

Cissoid of Diocles

Description

Cissoid of Diocles is the cissoid of a circle and a line tangent to
the circle with respect to a point on the circle opposite to the tangent
point.

ParaPlot[
	Rotate[ CissoidOfDiocles[][t], Pi/2 ],
	{t,-1.5, 1.5},
	PlotRange->{{-1,1} 3,{-.5,1.5}},
	Ticks->{Range[-3,3], Range[-3,3]},
	AspectRatio->Automatic
];

Properties

Positive and Negative Pedals of Cissoid

The pedal of a cissoid of Diocles with respect to a point P is the cardioid.
If the cissoid's asymptote is the line y = 1 and its cusp is at the origin,
then P is at {0,4}. Conversely, the negative pedal of a cardioid with
respect to a point opposite its cusp is the cissoid of Diocles.

Clear[NegativePedalPlot, unitV]

unitV[v_]:= v/Sqrt[v.v]

NegativePedalPlot::usage = "NegativePedalPlot[{xf,yf},{min,max,step},
	{x0,y0}] draws the negative pedal lines of the parametric curve
	{xf,yf} at points {xf,yf}& /@ Range[min,max,step].
	xf and yf must be pure functions with head Function.
	This is a quick hack function written for experienced
	Mathematica users.
	Example:
	NegativePedalPlot[{Cos@#&, Sin@#&}, {0,2 Pi, 2 Pi/30},{.8,0}]";

NegativePedalPlot[{xf_Function,yf_Function},
	{tmin_,tmax_, dt_}, {a_,b_}, opts___Rule]:=
	Module[{curvePoints, curvePointsGP,pedalPointGP,
		linesToCurveGP, negativePedalLinesGP},
		curvePoints = N@ {xf@ #,yf@ #}& /@ Range[tmin,tmax,dt];
		curvePointsGP = {Hue[0],PointSize[.01], Point[#]}& /@ curvePoints;
		pedalPointGP = {Hue[.7], PointSize[.02], Point[{a,b}]};
		linesToCurveGP = N@ Line[{{a,b},#}]& /@ curvePoints;
		negativePedalLinesGP = Line[{
				100 Reverse[unitV[N[#-{a,b}]]{1,-1}] +#,
				-100 Reverse[unitV[N[#-{a,b}]]{1,-1}] +#
			}]& /@ curvePoints;
		Show[
			Graphics[{{Hue[0,.7,1],linesToCurveGP}, {negativePedalLinesGP},
				curvePointsGP, pedalPointGP}],
				opts
		]
	]

NegativePedalPlot[
	Function /@ Rotate[Cardioid[][#], Pi/2],
	{0.0001, 2 Pi, 2 Pi/30},
	{0, 3},
	AspectRatio->Automatic,
	PlotRange->{{-4,4},{-3,3.5}},
	Axes->False,
	Prolog->First@ ParaPlot[
		Rotate[ Cardioid[][t], Pi/2],
		{t, 0, 2 Pi},
		PlotDot->False,
		CurveColorFunction->{Hue[.7,.7,1]&},	
		DisplayFunction->Identity
	]
];

ParaPlot[
	Rotate[CissoidOfDiocles[][t], Pi/2],
	{t, -1.5, 1.5, .1},
	PedalPoint->{0,4},
	PlotDot->False,
	CurveColorFunction->{Hue[0,.7,1]&},
	AspectRatio->Automatic,
	PlotRange->{{-3,3},{-.2,4.5}},
	Prolog-> First@ ParaPlot[
		Rotate[ Cardioid[][t], Pi/2] 3/4 + {0, 3/4+1},{t, 0, 2 Pi},
		CurveColorFunction->{Hue[.7,.7,1]&},
		DisplayFunction->Identity
	]
];

The pedal of a parabola with respect to its vertex is the cissoid of Diocles. The
negative pedal of a cissoid of Diocles with respect to its cusp is then a parabola.

NegativePedalPlot[
	Function /@ Rotate[ CissoidOfDiocles[][#], Pi/2],
	{-1.4, 1.4, 2.8/39},
	{0,0},
	AspectRatio->Automatic,
	PlotRange->{{-3.5,3.5},{-3,1.45}},
	Axes->False
];

Inverse of Cissoid of Diocles at Cusp

The Inverse of Cissoid of Diocles at its cusp is the parabola.

ParaPlot[ Rotate[ CissoidOfDiocles[][t], Pi/2 ],
	{t, -1.4, 1.4 , .05},
	InversionCircle->{{0,0},1},
	AspectRatio->Automatic,
	PlotRange->{{-1,1} 3,{-1.05,4}}
];

\(\(ParaPlot[
	{Rotate[\ \(CissoidOfDiocles[]\)[t], \ 
            Pi/2\ ], 
	\ Inversion[
	\ 	Rotate[\ \(CissoidOfDiocles[]\)[
                t], \ Pi/2\ ], \ {{0, 0}, 1}
	]
	}, 
	{t, \ \(-1.4\), \ 
          1.4}, 
	PlotStyle -> {Hue[ .65], \ Hue[0]}, 
	
        AspectRatio -> Automatic, 
	
        PlotRange -> {{\(-1\), 1}\ 3, {\(-1\), 4}}
];\)\)

Graphics Gallery

Parallels of a Cissoid

Clear[parallelsOfCissoid];

parallelsOfCissoid = Parallel[
	Rotate[ CissoidOfDiocles[][t], Pi/2 ],
	t, Range[-3,3,.5]
];

ParametricPlot[
	Evaluate@ parallelsOfCissoid,
	{t, -1.4, 0, 1.4},
	PlotStyle->Table[Hue[i], {i,1,0,-1/(Length@parallelsOfCissoid) }],
	AspectRatio->Automatic,
	PlotRange->{{-1,1} 5,{-2.3,4.1}},
	Axes->False,
	Prolog->{Hue[0,0,0], Polygon[{{-6,0},{-6,-3},{6,-3},{6,0}}]}
];
Clear[parallelsOfCissoid];