Accueil Carrara : Index 

 

L'éditeur de formules de Carrara Studio - Page 39

Tubes avec rayon proportionnel à la courbure ou à la torsion

1 - Avec l'hippopède d'Eudoxe

Formule objet Formule texture

a=8;n=3;
p=2*n*PI*u;
q=2*PI*v;
xc=a*cos(p);
yc=a*sin(p);
zc=a*sin(p/n);
xv=-a*sin(p);
yv=a*cos(p);
zv=-a/n*cos(p/n);
xa=-a*cos(p);
ya=-a*sin(p);
za=-a/pow(n,2)*sin(p/n);
xt=a*sin(p);
yt=-a*cos(p);
zt=-a/pow(n,3)*cos(p/n);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
sva=xv*xva+yv*yva+zv*zva;
xn1=(nv*xa-(sva/nv)*xv)/nva;
yn1=(nv*ya-(sva/nv)*yv)/nva;
zn1=(nv*za-(sva/nv)*zv)/nva;
xb1=xva/nva;
yb1=yva/nva;
zb1=zva/nva;
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
r=(p2>=0?(3*p1+1)*kappa:(8*p1+1)*tau);
x=xc+r*(cos(q)*xn1+sin(q)*xb1);
y=yc+r*(cos(q)*yn1+sin(q)*yb1);
z=zc+r*(cos(q)*zn1+sin(q)*zb1);

mk=10;mt=50;
a=8;n=3;
p=2*n*PI*u;
xc=a*cos(p);
yc=a*sin(p);
zc=a*sin(p/n);
xv=-a*sin(p);
yv=a*cos(p);
zv=-a/n*cos(p/n);
xa=-a*cos(p);
ya=-a*sin(p);
za=-a/pow(n,2)*sin(p/n);
xt=a*sin(p);
yt=-a*cos(p);
zt=-a/pow(n,3)*cos(p/n);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
mkappa=mk*kappa;
mtau=abs(mt*tau);
red=(mkappa>1?1/mkappa:mkappa);
blue=1-red;
green=(mtau>1?1/mtau:mtau);

 

Rendu pour p1 = 0 et p2 >= 0 Rendu pour p1 = 1 et p2 >= 0 Rendu pour p1 = 0 et p2 < 0 Rendu pour p1 = 1 et p2 < 0
tubekappatau111 tubekappatau112 tubekappatau121 tubekappatau122

2 - Avec le noeud de trčfle

Formule objet Formule texture

a=3;b=3;c=3;
p=2*PI*u;
q=2*PI*v;
xc=a*(cos(p)+2*cos(2*p));
yc=b*(sin(p)-2*sin(2*p));
zc=2*c*sin(3*p);
xv=a*(-sin(p)-4*sin(2*p));
yv=b*(cos(p)-4*cos(2*p));
zv=6*c*cos(3*p);
xa=a*(-cos(p)-8*cos(2*p));
ya=b*(-sin(p)+8*sin(2*p));
za=-18*c*sin(3*p);
xt=a*(sin(p)+16*sin(2*p));
yt=b*(-cos(p)+16*cos(2*p));
zt=-54*c*cos(3*p);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
sva=xv*xva+yv*yva+zv*zva;
xn1=(nv*xa-(sva/nv)*xv)/nva;
yn1=(nv*ya-(sva/nv)*yv)/nva;
zn1=(nv*za-(sva/nv)*zv)/nva;
xb1=xva/nva;
yb1=yva/nva;
zb1=zva/nva;
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
r=(p2>=0?(3*p1+1)*kappa:(8*p1+1)*tau);
x=xc+r*(cos(q)*xn1+sin(q)*xb1);
y=yc+r*(cos(q)*yn1+sin(q)*yb1);
z=zc+r*(cos(q)*zn1+sin(q)*zb1);

mk=5;mt=5;
a=3;b=3;c=3;
p=2*PI*u;
xc=a*(cos(p)+2*cos(2*p));
yc=b*(sin(p)-2*sin(2*p));
zc=2*c*sin(3*p);
xv=a*(-sin(p)-4*sin(2*p));
yv=b*(cos(p)-4*cos(2*p));
zv=6*c*cos(3*p);
xa=a*(-cos(p)-8*cos(2*p));
ya=b*(-sin(p)+8*sin(2*p));
za=-18*c*sin(3*p);
xt=a*(sin(p)+16*sin(2*p));
yt=b*(-cos(p)+16*cos(2*p));
zt=-54*c*cos(3*p);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
mkappa=mk*kappa;
mtau=abs(mt*tau);
red=(mkappa>1?1/mkappa:mkappa);
blue=1-red;
green=(mtau>1?1/mtau:mtau);

 

Rendu pour p1 = 1 et p2 >= 0 Rendu pour p1 = -1 et p2 >= 0 Rendu pour p1 = 0 et p2 < 0 Rendu pour p1 = 1 et p2 < 0
tubekappatau212 tubekappatau213 tubekappatau221 tubekappatau222

3 - Avec la fenętre de Viviani

Formule objet Formule texture
a=2;
p=4*PI*u;
q=2*PI*v;
xc=a*(1+cos(p));
yc=a*sin(p);
zc=2*a*sin(p/2);
xv=-a*sin(p);
yv=a*cos(p);
zv=a*cos(p/2);
xa=-a*cos(p);
ya=-a*sin(p);
za=-a*sin(p/2)/2;

xt=a*sin(p);
yt=-a*cos(p);
zt=-a/4*cos(p/2);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
sva=xv*xva+yv*yva+zv*zva;
xn1=(nv*xa-(sva/nv)*xv)/nva;
yn1=(nv*ya-(sva/nv)*yv)/nva;
zn1=(nv*za-(sva/nv)*zv)/nva;
xb1=xva/nva;
yb1=yva/nva;
zb1=zva/nva;
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
r=(p2>=0?(3*p1+1)*kappa:(8*p1+1)*tau);
x=xc+r*(cos(q)*xn1+sin(q)*xb1);
y=yc+r*(cos(q)*yn1+sin(q)*yb1);
z=zc+r*(cos(q)*zn1+sin(q)*zb1);

mk=5;mt=5;
a=2;
p=4*PI*u;
xc=a*(1+cos(p));
yc=a*sin(p);
zc=2*a*sin(p/2);
xv=-a*sin(p);
yv=a*cos(p);
zv=a*cos(p/2);
xa=-a*cos(p);
ya=-a*sin(p);
za=-a*sin(p/2)/2;

xt=a*sin(p);
yt=-a*cos(p);
zt=-a/4*cos(p/2);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
mkappa=mk*kappa;
mtau=abs(mt*tau);
red=(mkappa>1?1/mkappa:mkappa);
blue=1-red;
green=(mtau>1?1/mtau:mtau);

 

Rendu pour p1 = 0 et p2 >= 0 Rendu pour p1 = -0.5 et p2 >= 0 Rendu pour p1 = 0 et p2 < 0 Rendu pour p1 = -0.5 et p2 < 0
tubekappatau311 tubekappatau313 tubekappatau321 tubekappatau323

4 - 

Formule objet Formule texture
a=3;c=3;m=2;
p=4*PI*(u-0.5);
q=2*PI*v;
xc=a*p*cos(p);
yc=a*p*sin(p);
zc=c*cos(m*p);
xv=a*(cos(p)-p*sin(p));
yv=a*(sin(p)+p*cos(p));
zv=-c*m*sin(m*p);
xa=a*(-2*sin(p)-p*cos(p));
ya=a*(2*cos(p)-p*sin(p));
za=-c*m*m*cos(m*p);

xt=a*(-3*cos(p)+p*sin(p));
yt=a*(-3*sin(p)-p*cos(p));
zt=c*pow(m,3)*sin(m*p);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
sva=xv*xva+yv*yva+zv*zva;
xn1=(nv*xa-(sva/nv)*xv)/nva;
yn1=(nv*ya-(sva/nv)*yv)/nva;
zn1=(nv*za-(sva/nv)*zv)/nva;
xb1=xva/nva;
yb1=yva/nva;
zb1=zva/nva;
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
r=(p2>=0?(3*p1+1)*kappa:(8*p1+1)*tau);
x=xc+r*(cos(q)*xn1+sin(q)*xb1);
y=yc+r*(cos(q)*yn1+sin(q)*yb1);
z=zc+r*(cos(q)*zn1+sin(q)*zb1);

mk=5;mt=5;
a=3;c=3;m=2;
p=4*PI*(u-0.5);
xc=a*p*cos(p);
yc=a*p*sin(p);
zc=c*cos(m*p);
xv=a*(cos(p)-p*sin(p));
yv=a*(sin(p)+p*cos(p));
zv=-c*m*sin(m*p);
xa=a*(-2*sin(p)-p*cos(p));
ya=a*(2*cos(p)-p*sin(p));
za=-c*m*m*cos(m*p);
xt=a*(-3*cos(p)+p*sin(p));
yt=a*(-3*sin(p)-p*cos(p));
zt=c*pow(m,3)*sin(m*p);
xva=yv*za-ya*zv;
yva=zv*xa-za*xv;
zva=xv*ya-xa*yv;
n2v=pow(xv,2)+pow(yv,2)+pow(zv,2);
n2va=pow(xva,2)+pow(yva,2)+pow(zva,2);
nv=sqrt(n2v);
nva=sqrt(n2va);
kappa=nva/(n2v*nv);
tau=(xva*xt+yva*yt+zva*zt)/n2va;
mkappa=mk*kappa;
mtau=abs(mt*tau);
red=(mkappa>1?1/mkappa:mkappa);
blue=1-red;
green=(mtau>1?1/mtau:mtau);

 

Rendu pour p1 = 0 et p2 >= 0 Rendu pour p1 = 1 et p2 >= 0 Rendu pour p1 = -1 et p2 >= 0 Rendu pour p1 = 1 et p2 < 0
tubekappatau411 tubekappatau412 tubekappatau413 tubekappatau422

Documentation

Documentation