Surfaces algébriques de degré 4
Visualisation de quelques quartiques en 3D
Visualisations 2d ou stéréoscopiques: parallèle, croisé, anaglyphe, entrelacé ...etc
Les surfaces suivantes ont été choisies pour leur coté esthétique ( avis personnel !), présentent des symétries, des points doubles et contiennent parfois des cercles (resp. des droites).
Cliquer pour lancer la visualisation
Cliquer pour lancer la visualisation
Voici quelques unes des équations utilisées et les équations des doites incluses :
//============================ caspoly 1 =======================================================
//Sa:=(x^2+y^2+z^2-R1)*(x^2+y^2+z^2-R2)-k*(x+y+z-a)*(x+y-z+a)*(x-y+z-a)*(-x+y+z-a) ;
//Sa(2,2,-1,0)=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2-4*x^2-4*y^2-4*z^2+4;
//12 droites en paramétriques
droites= array[12] {<-1,0,tt>,<-1,tt,0>,<0,-1,tt>,<0,1,tt>,<0,tt,-1>,<0,tt,1>,<1,0,tt>,<1,tt,0>,,,,};
//Sa(2,2,-1,1))=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2-4*x^2*z-4*y^2*z+4*z^3-2*x^2-2*y^2-10*z^2+4*z+3;
//8 droites en paramétriques
droites= array[8] {<-.705,tt,1>,<0,tt,-.365>,<0,tt,1.36>,<.705,tt,1>,,,,};
//Sa(2,2,-1,sqrt(2))=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2-16*z^2-4*y^2*z*sqrt(2)-4*x^2*z*sqrt(2)+8*z*sqrt(2)+4*z^3*sqrt(2);
// 4 droites en paramétriques
droites= array[4] {<0,tt,0>,<0,tt,1.41>,,};
//Sa(2,2,-2,sqrt(2))= -x^4+6*x^2*y^2+6*x^2*z^2-y^4+6*y^2*z^2-z^4+4*x^2+4*y^2-28*z^2-4-8*y^2*z*sqrt(2)-8*x^2*z*sqrt(2)+16*z*sqrt(2)+8*z^3*sqrt(2)
// 4 droites en paramétriques
droites= array[4] {<.384*tt,-.924*tt,1.41>,<.384*tt,.924*tt,1.41>,<.925*tt,-.375*tt,1.41>,<.925*tt,.375*tt,1.41>};
//Sa(2,1,-1,sqrt(2))=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2+x^2+y^2-15*z^2-2-4*y^2*z*sqrt(2)-4*x^2*z*sqrt(2)+8*z*sqrt(2)+4*z^3*sqrt(2)
// 8 droites en paramétriques
droites= array[8] {<-.466,tt,.881>,<-.214,tt,.257>,<.214,tt,.257>,<.466,tt,.881>,,,,};
//Sa(1,4,-1,1))=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2-4*x^2*z-4*y^2*z+4*z^3-3*x^2-3*y^2-11*z^2+4*z+3 ;
// 8 droites en paramétriques
droites= array[8] {<-.955,tt,.220>,<-.565,tt,-.324>,<.565,tt,-.324>,<.955,tt,.220>,,,,};
//Sa(1,1,-1,1)=4*x^2*y^2+4*x^2*z^2+4*y^2*z^2-4*x^2*z-4*y^2*z+4*z^3-8*z^2+4*z;
// 4 droites en paramétriques
droites= array[4] {<0,tt,0>,<0,tt,1>,,};
//============================ caspoly 2 =======================================================
//(x^2+y^2+z^2-1)^2 -k*( z-x+a)*(z+x+a)*(z-y-a)*(z+y-a) ;
#declare suiteP=array[35]{1,0,0,0,2-k,0,0,2+k,-2*a*k,-2+a*a*k,0,0,0,0,0,0,0,0,0,0,1,0,0,2+k,2*a*k,-2+a*a*k,0,0,0,0,1-k,0,-2+2*a*a*k,0,1-pow(a,4)*k};
//S21(1,0)=x^4+x^2*y^2+3*x^2*z^2+y^4+3*y^2*z^2-2*x^2-2*y^2-2*z^2+1;
// 4 droites en paramétriques
droites= array[4] {<-.576,-.576,tt>,<-.576,.576,tt>,<.576,-.576,tt>,<.576,.576,tt>};
// Sb(4,0) = x^4-2*x^2*y^2+6*x^2*z^2+y^4+6*y^2*z^2-3*z^4-2*x^2-2*y^2-2*z^2+1;
// 8 droites en paramétriques
droites= array[8] {<.705*tt,-.705*tt,-.576>,<.705*tt,-.705*tt,.576>,<.705*tt,.705*tt,-.576>,<.705*tt,.705*tt,.576>,<.705*tt,-1-.705*tt,0>,<.705*tt,-1+.705*tt,0>,<.705*tt,1-.705*tt,0>,<.705*tt,1+.705*tt,0>};
//============================ caspoly 3 =======================================================
//(x+y+z-a)*(x+y-z+a)*(x-y+z-a)*(-x+y+z-a)-k*(z-x-b)*(z+x-b)*(z-y-b)*(z+y-b);
#declare suiteP=array[35]{-1,0,0,0,-k+2,0,0,k+2,-2*b*k-4*a,b*b*k+2*a*a,0,0,0,0,0,0,0,0,0,0,-1,0,0,k+2,-2*b*k-4*a,b*b*k+2*a*a,0,0,0,0,-1-k,4*b*k+4*a,-6*b*b*k-6*a*a,4*pow(b,3)*k+4*pow(a,3),-pow(a,4)-pow(b,4)*k};
//Sb(1,1,-2)=-x^4+x^2*y^2+3*x^2*z^2-y^4+3*y^2*z^2-2*z^4-4*z^3+6*x^2+6*y^2-30*z^2-28*z-17;
//16 droites en paramétriques
droites= array[16] {<-3,-2+.705*tt,-.705*tt>,<-3,2+.705*tt,.705*tt>,<3,-2+.705*tt,-.705*tt>,<3,2+.705*tt,.705*tt>,<-2+.409*tt,-1+.816*tt,-.409*tt>,<-2+.409*tt,1-.816*tt,-.409*tt>,<-2+.705*tt,-3,-.705*tt>,<-2+.705*tt,3,-.705*tt>,<-1+.816*tt,-2+.409*tt,-.409*tt>,<-1+.816*tt,2-.409*tt,-.409*tt>,<1+.816*tt,-2-.409*tt,.409*tt>,<1+.816*tt,2+.409*tt,.409*tt>,<2+.409*tt,-1-.816*tt,.409*tt>,<2+.409*tt,1+.816*tt,.409*tt>,<2+.705*tt,-3,.705*tt>,<2+.705*tt,3,.705*tt>};
//Sb(1,1,-1)=-x^4+x^2*y^2+3*x^2*z^2-y^4+3*y^2*z^2-2*z^4-2*x^2*z-2*y^2*z+3*x^2+3*y^2-12*z^2-2;
// 16 droites en paramétriques
droites= array16] {<-2,-1+.705*tt,-.705*tt>,<-2,1+.705*tt,.705*tt>,<2,-1+.705*tt,-.705*tt>,<2,1+.705*tt,.705*tt>,<.816*tt,-1-.409*tt,.409*tt>,<.816*tt,-1+.409*tt,-.409*tt>,<.816*tt,1-.409*tt,-.409*tt>,<.816*tt,1+.409*tt,.409*tt>,<-1+.409*tt,-.816*tt,-.409*tt>,<-1+.409*tt,.816*tt,-.409*tt>,<-1+.705*tt,-2,-.705*tt>,<-1+.705*tt,2,-.705*tt>,<1+.409*tt,-.816*tt,.409*tt>,<1+.409*tt,.816*tt,.409*tt>,<1+.705*tt,-2,.705*tt>,<1+.705*tt,2,.705*tt>};
// Sb(-1,1,-1)=-x^4+3*x^2*y^2+x^2*z^2-y^4+y^2*z^2-6*x^2*z-6*y^2*z+8*z^3+x^2+y^2+8*z;
// 16 droites en paramétriques
droites= array[16] {<-2,-1+.705*tt,-.705*tt>,<-2,1+.705*tt,.705*tt>,<2,-1+.705*tt,-.705*tt>,<2,1+.705*tt,.705*tt>,<.816*tt,-1-.409*tt,.409*tt>,<.816*tt,-1+.409*tt,-.409*tt>,<.816*tt,1-.409*tt,-.409*tt>,<.816*tt,1+.409*tt,.409*tt>,<-1+.409*tt,-.816*tt,-.409*tt>,<-1+.409*tt,.816*tt,-.409*tt>,<-1+.705*tt,-2,-.705*tt>,<-1+.705*tt,2,-.705*tt>,<1+.409*tt,-.816*tt,.409*tt>,<1+.409*tt,.816*tt,.409*tt>,<1+.705*tt,-2,.705*tt>,<1+.705*tt,2,.705*tt>};
//Sb(-4,3,-1)=-x^4+6*x^2*y^2-2*x^2*z^2-y^4-2*y^2*z^2+3*z^4-20*x^2*z-20*y^2*z+28*z^3+14*x^2+14*y^2-30*z^2+124*z-77;
// 24 droites en paramétriques
// 24 droites en paramétriques
droites= array[24] {<-4,-1+.705*tt,-.705*tt>,<-4,1+.705*tt,.705*tt>,<4,-1+.705*tt,-.705*tt>,<4,1+.705*tt,.705*tt>,<.384*tt,-.924*tt,-10.6>,<.384*tt,-.924*tt,.64>,<.384*tt,.924*tt,-10.6>,<.384*tt,.924*tt,.64>,<.925*tt,-.38*tt,-10.6>,<.925*tt,-.38*tt,.64>,<.925*tt,.38*tt,-10.6>,<.925*tt,.38*tt,.64>,<-2+.816*tt,-1-.409*tt,.409*tt>,<-2+.816*tt,1+.409*tt,.409*tt>,<-1+.409*tt,-2-.816*tt,-.409*tt>,<-1+.409*tt,2+.816*tt,-.409*tt>,<-1+.705*tt,-4,-.705*tt>,<-1+.705*tt,4,-.705*tt>,<1+.409*tt,-2+.816*tt,.409*tt>,<1+.409*tt,2-.816*tt,.409*tt>,<1+.705*tt,-4,.705*tt>,<1+.705*tt,4,.705*tt>,<2+.816*tt,-1+.409*tt,-.409*tt>,<2+.816*tt,1-.409*tt,-.409*tt>};
//Sb(-1,3/4,-3/4)=-16*x^4+48*x^2*y^2+16*x^2*z^2-16*y^4+16*y^2*z^2-72*x^2*z-72*y^2*z+96*z^3+9*x^2+9*y^2+54*z;
// 16 droites en paramétriques
droites= array[16] {<-1.50,-.750+.705*tt,-.705*tt>,<-1.50,.750+.705*tt,.705*tt>,<1.50,-.750+.705*tt,-.705*tt>,<1.50,.750+.705*tt,.705*tt>,<.816*tt,-.750-.409*tt,.409*tt>,<.816*tt,-.750+.409*tt,-.409*tt>,<.816*tt,.750-.409*tt,-.409*tt>,<.816*tt,.750+.409*tt,.409*tt>,<-.750+.409*tt,-.816*tt,-.409*tt>,<-.750+.409*tt,.816*tt,-.409*tt>,<-.750+.705*tt,-1.50,-.705*tt>,<-.750+.705*tt,1.50,-.705*tt>,<.750+.409*tt,-.816*tt,.409*tt>,<.750+.409*tt,.816*tt,.409*tt>,<.750+.705*tt,-1.50,.705*tt>,<.750+.705*tt,1.50,.705*tt>};
//============================ caspoly 4 =======================================================
//(x+y+z-a)*(x+y-z+a)*(x-y+z-a)*(-x+y+z-a) -k*( z-x-b)*(z+x-b)*(x^2+y^2+z^2-1) ;
#declare suiteP=array[35]{1*k-1,0,0,0,k+2,0,0,2,2*b*k-4*a,-b*b*k+2*a*a-k,0,0,0,0,0,0,0,0,0,0,-1,0,0,-k+2,2*b*k-4*a,-b*b*k+2*a*a,0,0,0,0,-k-1,2*b*k+4*a,-b*b*k-6*a*a+k,-2*b*k+4*pow(a,3),b*b*k-pow(a,4)};
//Sc(-1,1,-1)=-2*x^4+x^2*y^2+2*x^2*z^2-y^4+3*y^2*z^2-2*x^2*z-2*y^2*z+6*z^3+4*x^2+3*y^2-6*z^2+2*z-2;
// 8 droites en paramétriques
droites= array[8] {<-1+.409*tt,-.816*tt,-.409*tt>,<-1+.409*tt,.816*tt,-.409*tt>,<-1+.705*tt,-2,-.705*tt>,<-1+.705*tt,2,-.705*tt>,<1+.409*tt,-.816*tt,.409*tt>,<1+.409*tt,.816*tt,.409*tt>,<1+.705*tt,-2,.705*tt>,<1+.705*tt,2,.705*tt>};
//Sc(1,1,-1)=3*x^2*y^2+2*x^2*z^2-y^4+y^2*z^2-2*z^4-6*x^2*z-6*y^2*z+2*z^3+y^2-6*z^2+6*z;
//11 droites en paramétriques
droites= array[] {,,,<-1+.409*tt,-.816*tt,-.409*tt>,<-1+.409*tt,.816*tt,-.409*tt>,<-1+.705*tt,-2,-.705*tt>,<-1+.705*tt,2,-.705*tt>,<1+.409*tt,-.816*tt,.409*tt>,<1+.409*tt,.816*tt,.409*tt>,<1+.705*tt,-2,.705*tt>,<1+.705*tt,2,.705*tt>};
//Sc(2,1,-1)=x^4+4*x^2*y^2+2*x^2*z^2-y^4-3*z^4-8*x^2*z-8*y^2*z-2*x^2-6*z^2+8*z+1;
//8 droites en paramétriques
droites= array[8] {<-1+.409*tt,-.816*tt,-.409*tt>,<-1+.409*tt,.816*tt,-.409*tt>,<-1+.705*tt,-2,-.705*tt>,<-1+.705*tt,2,-.705*tt>,<1+.409*tt,-.816*tt,.409*tt>,<1+.409*tt,.816*tt,.409*tt>,<1+.705*tt,-2,.705*tt>,<1+.705*tt,2,.705*tt>};
//Sc(-4,1,-2)=-5*x^4-2*x^2*y^2+2*x^2*z^2-y^4+6*y^2*z^2+3*z^4+12*x^2*z+12*y^2*z+20*z^3+22*x^2+18*y^2+6*z^2-12*z-17;
// 8 droites en paramétriques
droites= array[8] {<-2+.409*tt,-1+.816*tt,-.409*tt>,<-2+.409*tt,1-.816*tt,-.409*tt>,<-2+.705*tt,-3,-.705*tt>,<-2+.705*tt,3,-.705*tt>,<2+.409*tt,-1-.816*tt,.409*tt>,<2+.409*tt,1+.816*tt,.409*tt>,<2+.705*tt,-3,.705*tt>,<2+.705*tt,3,.705*tt>};
//Sc(-4,1,+1)=-5*x^4-2*x^2*y^2+2*x^2*z^2-y^4+6*y^2*z^2+3*z^4-12*x^2*z-12*y^2*z-4*z^3+10*x^2+6*y^2-6*z^2+12*z-5;
// 6 droites en paramétriques
droites= array[6] {<-1+.409*tt,-2+.816*tt,.409*tt>,<-1+.409*tt,2-.816*tt,.409*tt>,<-1+.705*tt,0,.705*tt>,<1+.409*tt,-2-.816*tt,-.409*tt>,<1+.409*tt,2+.816*tt,-.409*tt>,<1+.705*tt,0,-.705*tt>};
//Sc(-4,1,0)=-5*x^4-2*x^2*y^2+2*x^2*z^2-y^4+6*y^2*z^2+3*z^4-4*x^2*z-4*y^2*z+4*z^3+6*x^2+2*y^2-10*z^2+4*z-1;
// 8 droites en paramétriques
droites= array[8] {<.409*tt,-1-.816*tt,-.409*tt>,<.409*tt,-1+.816*tt,.409*tt>,<.409*tt,1-.816*tt,.409*tt>,<.409*tt,1+.816*tt,-.409*tt>,<.705*tt,-1,-.705*tt>,<.705*tt,-1,.705*tt>,<.705*tt,1,-.705*tt>,<.705*tt,1,.705*tt>};
//Sc(1,0,0)=3*x^2*y^2+2*x^2*z^2-y^4+y^2*z^2-2*z^4-x^2+z^2;
//12 droites en paramétriques
droites= array[12] {,,,,,,<.409*tt,-.816*tt,-.409*tt>,<.409*tt,-.816*tt,.409*tt>,<.409*tt,.816*tt,-.409*tt>,<.409*tt,.816*tt,.409*tt>,<.705*tt,0,-.705*tt>,<.705*tt,0,.705*tt>};
//==================Nouvelles===============================
S=x^2*y^2+y^2*z^2+x^2*z^2 -a*(x+y+z)-b*(x^2+y^2+z^2-c)^2; # #
S(0,1/4,9) (-x^4+2*x^2*y^2+2*x^2*z^2-y^4+2*y^2*z^2-z^4+18*x^2+18*y^2+18*z^2-81
12 droites en paramétriques
{[0,-3+.705*tt,-.705*tt>,<0,-3+.705*tt,.705*tt>,<0,3+.705*tt,-.705*tt>,<0,3+.705*tt,.705*tt>,<.705*tt,-3-.705*tt,0>,<.705*tt,-3+.705*tt,0>,<.705*tt,3-.705*tt,0>,<.705*tt,3+.705*tt,0>,<-3+.705*tt,0,-.705*tt>,<-3+.705*tt,0,.705*tt>,<3+.705*tt,0,-.705*tt>,<3+.705*tt,0,.705*tt]}
Sx(2,1/4,4)
6 droites en paramétriques
<-.637,1.45+.705*tt,-.705*tt>,<1.23,1.79+.705*tt,-.705*tt>,<.705*tt,2.17-.705*tt,-.780>,<.705*tt,2.43-.705*tt,1.34>,<2.17+.705*tt,-.780,-.705*tt>,<2.43+.705*tt,1.34,-.705*tt>
( z-b*x-c)*(z+b*x-c)*(z-b*y-c)*(z+b*y-c)+k*(x^2+y^2-z^2-1)^2;
suiteP :=
{[-1,-1,tt>,<-1,1,tt>,<-1,.705*tt,-.705*tt>,<-1,.705*tt,.705*tt>,<1,-1,tt>,<1,1,tt>,<1,.705*tt,-.705*tt>,<1,.705*tt,.705*tt>,<.705*tt,-1,-.705*tt>,<.705*tt,-1,.705*tt>,<.705*tt,1,-.705*tt>,<.705*tt,1,.705*tt]}
Sx(1,1,0) 8 droites en paramétriques
{[-1,.705*tt,-.705*tt>,<-1,.705*tt,.705*tt>,<1,.705*tt,-.705*tt>,<1,.705*tt,.705*tt>,<.705*tt,-1,-.705*tt>,<.705*tt,-1,.705*tt>,<.705*tt,1,-.705*tt>,<.705*tt,1,.705*tt]}