
[ {Cet exemple nécessite la chargemeent de PolyedresII.mac, ainsi que la définition de la macro FacettesCreuses. Ceci est fait dans le fichier source (.teg) ci-joint} background(full, lightskyblue), poly:=Archimede(6, [0,0],[4,0]), {grand rhombicuboctaèdre} FillColor:=gold, FillStyle:=full, DrawPolyNC(FacettesCreuses(poly,0.5),1) ]

[ view(-7,7,-7,7), Marges(0,0,0,0), size(12,1), background(full,beige), H:=5, R:=4, a:=2, Plan:=[M(a,0,0),vecI], C1:=cone(Origin, H*vecK,R,45), C2:=cone(Origin, -H*vecK,R,45), L1:=Intersection(Plan,C1), L2:=Intersection(Plan,C2), Asymp1:=getdroite( [M(a,0,0),M(0,R,H)] ), Asymp2:=getdroite( [M(a,0,0),M(0,-R,H)] ), Build3D([1, Rgb(0.74,1,0.73)+0.9*i,getplan(Plan)], [1, Rgb(0.73,0.74,1),C1,C2], [2,darkgreen,12, Asymp1,Asymp2], [2,0,8,axes3d()], ), Display3D(), Color:=red, Width:=8, DrawAretes([L1,L2],0), Color:=black, Arrows:=1, LineStyle:=dotted, Axes3D(0,0,0) ]

[ Fenetre(-1+i,1-i,5+5*i), LineStyle:=noline, L:=7, m:=4, sg:=if mod(m,2)=0 then 1 else -1 fi, P:= (for k from 0 to L do Anp(2*(L-k),L+m)*binom(L,k)*sg,0, sg:=-sg od)/(2^L*fact(L)), Del(P,L-m+2,0), K:=sqrt((2*L+1)*fact(L-abs(m))/(4*pi*fact(L+abs(m)))), NewMac("Plm",["[P:=",P,",T:=P[1], for k from 2 to Nops(P) do T:=x*T+P[k] od, T*(1-sqr(x))^(",m,"/2)]"],x), NewMac("Y",[K,"*Plm(cos(x))*cos(",m,"*y)"],x,y), S:=GetSurface( [z:=0.75+0.25*Y(v,u),z*exp(i*u)*sin(v),z*cos(v)], i*2*pi,i*pi,75+75*i), S1:=SortFacet(S,i), Map( if Re(z)=Re(jump) then {facette} G:=isobar3d(facette), c:=(norm(G)-0.63)/(0.87-0.63), FillColor:=Rgb(1,1-c,0), Ligne3D([facette],1), facette:=Nil else Insert(facette,z) fi, z, S1 ) ]
Ce fichier est inspiré d'un exemple dû à Philippe Ivaldi avec asymptote.

[ S:=GetSurface( [u+i*v, (u/2+v)/(2+cos(u/2)*sin(v))], 10*i,10*i,45+45*i), HideWidth:=8, Dparallelep(Origin,[10,0],[10*i,0],[0,11],0), S1:=SortFacet(S,i), Map( if Re(z)=Re(jump) {fin de facette} then {traiter facette, on découpe aux lignes de niveau: 2, 3, 5, 7.5} f1:=ClipFacet(facette,[0,2,-vecK]), f2:=ClipFacet(facette,[0,2,vecK]), FillColor:=red, Del(f1,Nops(f1),1), Ligne3D([f1,z],1), f1:=ClipFacet(f2,[0,3,-vecK]), f3:=ClipFacet(f2,[0,3,vecK]), FillColor:=blue, Del(f1,Nops(f1),1), Ligne3D([f1,z],1), f1:=ClipFacet(f3,[0,5,-vecK]), f2:=ClipFacet(f3,[0,5,vecK]), FillColor:=green, Del(f1,Nops(f1),1), Ligne3D([f1,z],1), f1:=ClipFacet(f2,[0,7.5,-vecK]), f3:=ClipFacet(f2,[0,7.5,vecK]), FillColor:=yellow, Del(f1,Nops(f1),1), Ligne3D([f1,z],1), FillColor:=orange, Del(f3,Nops(f3),1), Ligne3D([f3,z],1), facette:=Nil, else Insert(facette,z) {c'est un sommet}, fi, z, S1 ), FillStyle:=none, Dparallelep(Origin,[10,0],[10*i,0],[0,11],1) ]

[ $rapport:=4, angle3:=0, courbe:=Nil, $angle1:=arcsin(rapport/(rapport+1)), $angle2:=arcsin(1/(rapport+1)), $H:=6, $R:=H*tan(angle1), $h:=7,$r:=h*tan(angle2), $C1:=cone(Origin,-H*vecK,R,45), $x:=angle1+angle2, $u:=[exp(i*angle3)*sin(x),-cos(x)], $C2:=cone(Origin, h*u,r,30), $A:=h*[sin(angle1),-cos(angle1)]/cos(angle2), for k from 1 to 72 do $angle1':=angle3*rapport, $u:=[exp(i*angle3)*sin(x),-cos(x)], A':=rot3d(A,[Origin,vecK],angle3), A'':=rot3d(A',[Origin,-u],angle1'), Insert(courbe,A''),Inc(angle3,pi/36) od, L:=lineTube(courbe,0.15,12), S:=Sphere(Origin,Norm(A),30,30), Build3D( [1,Rgb(0.74,1,0.73), C1], [1, aliceblue+0.6*i,S], [1,Rgb(0.74,0.73,1), C2], [1,red-i, L] ), Display3D() ]

% Intersection d'un cylindre et d'un conoïde de Plücker. % Dépend du modèle scene3d.mod. [ C:=cylindre(M(0,0,-5),10*vecK,3,50), b:=2, CP:=GetSurface( M(u,v,2*b*u*v/(sqr(u)+sqr(v))),-5+5*i,-5+5*i,30+30*i), L:=curveTube([3*exp(i*t),b*sin(2*t)],0.15,-pi,pi,50,15), Build3D([1, Rgb(0.74,0.73,1), C], [1, Rgb(0.74,1,0.73), CP], [1, red, L] ), Display3D() ]