I want to draw a series of normals to a curve, where the curve has been
parametrized by a single angle, i.e., the polar angle. The curve is actually
sinusoidal perturbation of a circle of radius 1/2, and the magnitude of the perturbation is given by amp
.
I have the normal
function calculated in the code below already. I want to be able to draw normals to the curve at different points on the curve. How do I do this?
orad = 1/2;
amp = 0.05;
numpetals = 7;
(*Polar information of interface*)
r[th_] := orad + amp * Sin[numpetals*th];
rp[th_] := amp*numpetals*Cos[numpetals*th];
(*Cartesian information of interface*)
x[th_] := r[th]*Cos[th]; (*X-coordinate of the interface/*)
y[th_] := r[th]*Sin[th]; (*Y-coordinate of the interface*)
(*Speeds of traveral*)
xp[th_] := rp[th]*Cos[th] - r[th]*Sin[th];
yp[th_] := rp[th]*Sin[th] + r[th]*Cos[th];
(*Outward unit normal to the curve*)
normal[th_] := {yp[th], -xp[th]}/Sqrt[xp[th]^2 + yp[th]^2];