Om(p) = (xc,yc,zc) : la courbe
OM(p,q)) = (x,y,z) : l'enveloppe
(xv,yv,zv) : le vecteur dérivée première Om'(p)
(xa,ya,za) : le vecteur dérivée seconde Om''(p)
(xva,yva,zva) : le vecteur Om'(p) x Om''(p) colinéaire à la binormale B(p) (Le symbole "x" désigne le produit vectoriel de deux vecteurs)
sva : produit scalaire Om'(p).Om''(p) (Le point désigne le produit scalaire de deux vecteurs)
nv : la norme du vecteur (xv,yv,zv)
nva : la norme du vecteur (xva,yva,zva)
(xn1,yn1,zn1) : le vecteur normal principal unitaire N(p) = ((Om'(p)xOm''(p)xOm'(p))/(nva*nv) = (nv Om"-((Om'.Om")/nv)Om')/nva (par la formule de Gibbs)
mM(p,q) = (q*xn1),q*yn1),q*zn1)) :
vecteur colinéaire à N(p)
OM(p,q)) = Om(p)+ mM(q) = (x,y,z) = (xc+r*(cos(q)*xn1+sin(q)*xb1),yc+r*(cos(q)*yn1+sin(q)*yb1),zc+r*(cos(q)*zn1+sin(q)*zb1))
: la paramétrisation de l'enveloppe
p=
q=0.25*(1+p1)*(2*v-1);
xc=
yc=
zc=
xv=
yv=
zv=
xa=
ya=
za=
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
sva=xv*xva+yv*yva+zv*zva;
nv=sqrt(pow(xv,2)+pow(yv,2)+pow(zv,2));
nva=sqrt(pow(xva,2)+pow(yva,2)+pow(zva,2));
xn1=(nv*xa-(sva/nv)*xv)/nva;
yn1=(nv*ya-(sva/nv)*yv)/nva;
zn1=(nv*za-(sva/nv)*zv)/nva;
x=xc+q*xn1;
y=yc+q*yn1;
z=zc+q*zn1;