Ellipsoïde et hyperboloïde
Publié: 16 Juil 2009 21:50
Suite à une demande en privé, j'ai proposé le dessin que voici. Avec la dernière version test de TeXgraph , on charge le modèle povray et on définit un élément Utilisateur avec le code suivant:
l'export pov-ray donne:
- Code: Tout sélectionner
[
view3D(-5,5,-5,5,-6,5.5), view(-5,6,-6,6), Marges(0,0,0,0), size(12),
backcolor:=lightgray,
c:=2, F:=M(0,0,c), F':=-F, {foyers}
a:=c+0.5, b:=sqrt(a^2-c^2), {ellipsoïde}
a':=c-0.5, b':=sqrt(c^2-a'^2), {hyperboloïde}
Phi:=0*deg, {plans phi= }
Plan1:=[M(0,0,4), M(0,0,4)+4*[exp(i*Phi),0], M(0,0,-4)+4*[exp(i*Phi),0], M(0,0,-4)],
Phi:=90*deg,
Plan3:=[M(0,0,4), M(0,0,4)+4*[exp(i*Phi),0], M(0,0,-4)+4*[exp(i*Phi),0], M(0,0,-4)],
Phi:=60*deg,
Plan2:=[M(0,0,4), M(0,0,4)+4*[exp(i*Phi),0], M(0,0,-4)+4*[exp(i*Phi),0], M(0,0,-4)],
uPhi:=4*[exp(i*Phi),0], uPhi':=2/3*uPhi,
povScene(
povFacet(Plan2, [color:=forestgreen, opacity:=0.7]),
povLine([Plan1,jump,Plan2,jump,Plan3,jump,Origin, uPhi,jump,
F, F+ uPhi, jump, F', F'+uPhi], [shadow:=0]),
povLine([F+uPhi',uPhi',jump,F'+uPhi',uPhi'], [arrows:=2, color:=firebrick, shadow:=0]),
povSurf([b'*sh(u)*exp(-i*v), a'*ch(u)], [color:=slategray, u:=[0,argch(4/a')], v:=[-pi,pi], grid:=[15,35],
opacity:=0.7, contrast:=0.125, smooth:=1]),
povSurf([b*sin(u)*exp(i*v), a*cos(u)], [color:=steelblue, u:=[0,pi],smooth:=1,
opacity:=0.6, v:=[-pi,pi], contrast:=0.25, backculling:=1]),
povSurf([b'*sh(u)*exp(i*v), -a'*ch(u)], [color:=slategray, u:=[0,argch(4/a')], v:=[-pi,pi], grid:=[15,35],
opacity:=0.7, contrast:=0.125,smooth:=1]),
povAxes([0,0], [color:=gold, arrows:=1, shadow:=0]),
povArc( vecI,Origin,uPhi, 8/3,1, [color:=firebrick, arrows:=2, labelarc("\phi"), TeXify:=1, shadow:=0]),
povLabel(F, "F", [showdot:=1, labelsize:=small, color:=black, labelpos:=[0.5,-1]]),
povLabel(Origin, "O", [showdot:=1, labelsize:=small, color:=black, labelpos:=[0.5,-1+i]]),
povLabel(F', "F'", [showdot:=1, labelsize:=small, color:=black, labelpos:=[0.5,-1]]),
povLabel(F/2+uPhi', "d/2",
[showdot:=0, color:=firebrick, labelsize:=small, labelstyle:=right, labelpos:=[0.25,-1]]),
povLabel(F'/2+uPhi', "d/2",
[showdot:=0, color:=firebrick, labelsize:=small, labelstyle:=right, labelpos:=[0.25,-1]]),
povLabel(M(0,4,-4), "\phi=\pi/2", [color:=black, TeXify:=1, labelstyle:=left, labelpos:=[0.125,-i]]),
povLabel(M(4,0,-4), "\phi=0", [color:=black, TeXify:=1, labelpos:=[0.25,-i]]),
povLabel(M(2,0,1), "$\zeta=$const", [color:=black, dollar:=0, TeXify:=1, labelstyle:=right, labelpos:=[0.25,-1]]),
povLabel(M(0,0,-4)+uPhi, "$\phi=$const", [color:=black, dollar:=0, TeXify:=1, labelpos:=[0.25,-i]]),
povLabel(M(0,4,4.25), "$\eta=$const", [color:=black, dollar:=0, TeXify:=1, labelstyle:=left+bottom, labelpos:=[0.25,i]]),
povLabel(M(0,0,Zinf), "\eta=-1", [color:=black, TeXify:=1, labelstyle:=right, labelpos:=[0.25,-1]]),
povLabel(M(0,0,5), "\eta=1", [color:=black, TeXify:=1, labelstyle:=left, labelpos:=[0.25,1]]),
),
Display3D()]
l'export pov-ray donne: