Function Repository Resource:

PedalSurface

Source Notebook

Compute a pedal surface

Contributed by: Wolfram Staff (original content by Alfred Gray)

ResourceFunction["PedalSurface"][s,p,{u,v}]

computes the pedal surface with respect to the point p of the surface s parameterized by variables {u,v}.

Details and Options

The pedal of a surface s is the locus of the intersections of perpendicular lines from a fixed point p to the tangent planes of s.
Pedal surface is defined as the surface .
The pedal surface is the 3D analog of a pedal curve.

Examples

Basic Examples (3) 

Get the equation of an ellipsoid surface:

In[1]:=
ellipsoid = Entity["Surface", "Ellipsoid"][
   EntityProperty["Surface", "ParametricEquations"]][1, 2, 3]
Out[1]=

Compute the pedal surface of the ellipsoid:

In[2]:=
ps = ResourceFunction["PedalSurface"][
   ellipsoid[u, v], {0, 0, 0}, {u, v}] // FullSimplify
Out[2]=

Plot the pedal surface; it is a particular case of Fresnel’s elasticity surface:

In[3]:=
ParametricPlot3D[Evaluate[ps], {u, 0, 3 \[Pi]/2}, {v, 0, \[Pi]}]
Out[3]=

Scope (1) 

The following Manipulate shows how the pedal surface is constructed. Note that the tangent plane at a point of the ellipsoid is perpendicular to the red line:

In[4]:=
surfaces = ParametricPlot3D[
   Evaluate[{ps, .99 ellipsoid[u, v]}], {u, 0, 3 \[Pi]/2}, {v, 0, \[Pi]}, PlotStyle -> Opacity[.5]];
In[5]:=
Manipulate[Evaluate[Show[surfaces, Graphics3D[
         {InfinitePlane[
      ellipsoid[u, v], {Derivative[1, 0][ellipsoid][u, v], Derivative[0, 1][ellipsoid][u, v]}], Red, Thickness[0.0035], Line[{{0, 0, 0}, ps}], Green, PointSize[0.03], Point[ps]}]]], {{u, 0.75}, 0, (3*Pi)/2}, {{v, 0.3}, 0, Pi}]
Out[5]=

Properties and Relations (3) 

Get the equation for an ellipse:

In[6]:=
ellipse = Entity["PlaneCurve", "Ellipse"]["ParametricEquations"][1, 2]
Out[6]=

Compute the pedal curve of the ellipse:

In[7]:=
pc = ResourceFunction["PedalCurve"][ellipse[t], {0, 0}, {t}] // Simplify
Out[7]=

Plot the pedal curve; the contour is like the 3D case:

In[8]:=
ParametricPlot[Evaluate[{ellipse[t], pc}], {t, 0, 2 \[Pi]}]
Out[8]=

Publisher

Enrique Zeleny

Version History

  • 1.0.0 – 10 April 2020

Source Metadata

Related Resources

Author Notes

License Information