Function Repository Resource:

Orthotomic

Source Notebook

Compute the orthotomic of a curve

Contributed by: Eric W. Weisstein (with contributions by Wolfram Staff)

ResourceFunction["Orthotomic"][c,t]

computes the orthotomic in parameter t of a curve c with respect to the point {0,0}.

ResourceFunction["Orthotomic"][c,p,t]

computes the orthotomic with respect to the point p.

ResourceFunction["Orthotomic"][c,l,t]

computes the orthotomic with respect to the infinite line l.

Details

The orthotomic curve (also known as the secondary caustic) is the reflection of the rays of a source in the tangents of points of a curve.
The orthotomic of a curve is the homothetic image (magnified by a factor of 2 with respect to the center of similarity p) of the pedal.
The orthotomic of a curve with respect to a given line is the locus of points generated by the orthogonal projection of a point on the original curve to the given line, reflected about the tangent to the curve at that point.
In ResourceFunction["Orthotomic"][c,l,t], l can be specified as an InfiniteLine object.

Examples

Basic Examples (1) 

Orthotomic of a circle with respect to the origin:

In[1]:=
orthcircle = ResourceFunction["Orthotomic"][{Cos[t], Sin[t]}, t] // Simplify
Out[1]=
In[2]:=
ParametricPlot[{{Cos[t], Sin[t]}, orthcircle} // Evaluate, {t, 0, 2 \[Pi]}, PlotRange -> 3.4]
Out[2]=

Scope (4) 

Orthotomic of a circle with respect to the point {1,1}:

In[3]:=
orthcircle2 = ResourceFunction["Orthotomic"][{Cos[t], Sin[t]}, {1, 1}, t] // Simplify
Out[3]=
In[4]:=
ParametricPlot[{{Cos[t], Sin[t]}, orthcircle2} // Evaluate, {t, 0, 2 \[Pi]}, PlotRange -> 3.4]
Out[4]=

Orthotomic of an eight curve with respect to a varying point:

In[5]:=
eight[t_] := {Sin[t], Cos[t] Sin[t]}
In[6]:=
Manipulate[
 ParametricPlot[
  Evaluate[{eight[t], ResourceFunction["Orthotomic"][eight[t], p, t]}], {t, 0, 2 \[Pi]},
   PlotRange -> 3.4], {{p, {0, 0}}, Locator}, SaveDefinitions -> True]
Out[6]=

Parametric equations for a deltoid:

In[7]:=
del[t_] = Entity["PlaneCurve", "Deltoid"]["ParametricEquations"][1][t]
Out[7]=

Orthotomic of the deltoid with respect to a given line:

In[8]:=
oLine = ResourceFunction["Orthotomic"][del[t], InfiniteLine[{0, 0}, {1, 0}], t] // Simplify
Out[8]=
In[9]:=
ParametricPlot[{del[t], oLine}, {t, 0, 2 \[Pi]}, PlotRange -> 1.2]
Out[9]=

Orthotomic of a bifolium with respect to a varying line:

In[10]:=
bifolium[t_] := {2 Sin[2 t]^2, 2 Sin[2 t] - Sin[4 t]}
In[11]:=
Manipulate[
 ParametricPlot[
  Evaluate[{bifolium[t], ResourceFunction["Orthotomic"][eight[t], InfiniteLine[{p1, p2}], t]}], {t, 0, 2 \[Pi]}, Prolog -> {Directive[DotDashed, Gray, Thickness[Medium]], InfiniteLine[{p1, p2}]}, PlotRange -> 3.4], {{p1, {0, 0}}, Locator}, {{p2, {1, 1}}, Locator}, SaveDefinitions -> True]
Out[11]=

Properties and Relations (2) 

The orthotomic is equivalent to the pedal curve, scaled by a factor of 2:

In[12]:=
curve[t_] := {Cos[t], Sin[t]};
pt = {1, 1};
In[13]:=
pedal = ResourceFunction["PedalCurve"][curve[t], pt, t] // Simplify
Out[13]=
In[14]:=
ot = ResourceFunction["Orthotomic"][curve[t], pt, t] // Simplify
Out[14]=
In[15]:=
ot == ScalingTransform[{2, 2}, pt][pedal] // Simplify
Out[15]=
In[16]:=
ParametricPlot[{curve[t], ot, pedal} // Evaluate, {t, 0, 2 \[Pi]}, PlotLegends -> {"curve", "orthotomic", "pedal"}]
Out[16]=

The catacaustic curve is the evolute of the orthotomic:

In[17]:=
curve[t_] := {2 Sin[t]^2, 2 Sin[t]^2 Tan[t]};
pt = {8, 0};
In[18]:=
ot = ResourceFunction["Orthotomic"][curve[t], pt, t] // Simplify
Out[18]=
In[19]:=
caustic = ResourceFunction["CatacausticCurve"][curve[t], pt, t] // Simplify
Out[19]=
In[20]:=
caustic == ResourceFunction["EvoluteCurve"][ot, t] // Simplify
Out[20]=
In[21]:=
ParametricPlot[{curve[t], ot, caustic} // Evaluate, {t, -\[Pi], \[Pi]}, PlotLegends -> {"curve", "orthotomic", "caustic"}]
Out[21]=

Neat Examples (1) 

Generate the orthotomic as an envelope of circles:

In[22]:=
curve[t_] := {Sec[t], Tan[t]};
pt = {0, 0};
In[23]:=
ot = ResourceFunction["Orthotomic"][del[t], pt, t] // Simplify
Out[23]=
In[24]:=
ParametricPlot[{curve[t], ot} // Evaluate, {t, -\[Pi], \[Pi]}, Prolog -> {Directive[Opacity[0.6, Gray], DotDashed], Table[N@Circle[curve[t], Norm[pt - curve[t]]], {t, -\[Pi] + \[Pi]/31, \[Pi] - \[Pi]/
       31, \[Pi]/31}]}, PlotLegends -> {"curve", "orthotomic"}, PlotRange -> 2.9]
Out[24]=

Publisher

Enrique Zeleny

Version History

  • 1.0.1 – 29 March 2022
  • 1.0.0 – 15 April 2020

Source Metadata

Related Resources

License Information