![]() ![]() |
// Deux options d'affichage des labels en 3D : Billboard ou Embedded. settings.autobillboard=false; // solution temporaire pour que // l'option d'affichage par défaut des labels ne soit plus Billboard // (qui ne fonctionne pas pour l'instant avec obliqueX). import three; size(8cm,0); currentprojection=obliqueX; currentlight=(0,2,1); //~~~~~~~~~ DEFINITIONS ~~~~~~~~~ // On définit le plan. triple v1=(8,0,0), v2=(0,10,0), pO=(-4,-5,-1); path3 pl1=plane(v2,v1,pO); // On définit un vecteur donnant la direction de projection triple V=(1,2,4); // On définit un point pA triple pA=(4,2,5); // projection sur le plan pl1 suivant la direction de V transform3 proj=planeproject(pl1,V); // On définit l'imagepB de pA par proj triple pB=proj*pA; //~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ // On trace le plan. draw(surface(pl1),paleblue+opacity(.5),blue); // On représente le vecteur. draw((0,0,0)--V,Arrow3); // On place le point A dot("A",pA,NW); // puis son projeté B sur le plan suivant la direction du vecteur dot("B",pB,NW); // On relie le point A à son projeté B draw(pA--pB,dashed); |
![]() ![]() |
// Deux options d'affichage des labels en 3D : Billboard ou Embedded. settings.autobillboard=false; // solution temporaire pour que // l'option d'affichage par défaut des labels ne soit plus Billboard // (qui ne fonctionne pas pour l'instant avec obliqueX). import three; size(8cm,0); currentprojection=obliqueX; currentlight=(0,2,1); //~~~~~~~~~ DEFINITIONS ~~~~~~~~~ // On définit le plan. triple v1=(8,0,0), v2=(0,10,0), pO=(-4,-5,-1); path3 pl1=plane(v2,v1,pO); // On définit un point pA triple pA=(1,0,5); // On définit la projection orthogonale sur le plan pl1 : transform3 proj=planeproject(pl1); // On définit l'image pB de pA par proj : triple pB=proj*pA; //~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ // On trace le plan. draw(surface(pl1),paleblue+opacity(.5),blue); // On place le point A dot("A",pA,NW); // puis son projeté B sur le plan suivant la direction du vecteur dot("B",pB,NW); // On relie le point A à son projeté B draw(pA--pB,dashed); |
![]() ![]() |
// Deux options d'affichage des labels en 3D : Billboard ou Embedded. settings.autobillboard=false; // solution temporaire pour que // l'option d'affichage par défaut des labels ne soit plus Billboard // (qui ne fonctionne pas pour l'instant avec obliqueX). import three; size(8cm,0); currentprojection=obliqueX; currentlight=(0,2,1); //~~~~~~~~~ DEFINITIONS ~~~~~~~~~ // On définit le plan. triple v1=(10,0,0), v2=(0,10,0), pO=(-2,-3,0); path3 pl1=plane(v1,v2,pO); // On définit un vecteur donnant la direction de projection triple V=(1,-1,4); // On définit un chemin path3 ch=(5,3,4)--(5,4,8)--(1,4,4)--(4,-2,3)--cycle; // projection sur le plan pl1 suivant la direction de V transform3 proj=planeproject(pl1,V); // et on définit le projetté de ch : path3 chproj=proj*ch; //~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ // On trace le plan. draw(surface(pl1),paleblue+opacity(.5),blue); // On représente le vecteur. draw((0,0,0)--V,Arrow3); // On trace le chemin défini draw(ch,blue); // et son projeté draw(chproj,red); for (int i=0; i < length(ch); ++i) draw(point(ch,i)--point(chproj,i), .5bp+blue+dotted); |
![]() ![]() |
// Deux options d'affichage des labels en 3D : Billboard ou Embedded. settings.autobillboard=false; // solution temporaire pour que // l'option d'affichage par défaut des labels ne soit plus Billboard // (qui ne fonctionne pas pour l'instant avec obliqueX). import three; size(8cm,0); currentprojection=obliqueX; currentlight=(0,2,1); //~~~~~~~~~ DEFINITIONS ~~~~~~~~~ // On définit le plan. triple v1=(10,0,0), v2=(0,10,0), pO=(-2,-3,0); path3 pl1=plane(v1,v2,pO); // On définit un chemin path3 ch=(5,3,4)..(5,4,8)..(1,4,4)..(4,-2,3)..cycle; // On définit la projection orthogonale sur pl1 : transform3 proj=planeproject(pl1); // et on définit le projetté de ch : path3 chproj=proj*ch; //~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ // On trace le plan. draw(surface(pl1),paleblue+opacity(.5),blue); // On trace le chemin défini draw(ch,blue); // et son projeté draw(chproj,red); for (int i=0; i < length(ch); ++i) draw(point(ch,i)--point(chproj,i), .5bp+blue+dotted); |
![]() ![]() |
// Deux options d'affichage des labels en 3D : Billboard ou Embedded. settings.autobillboard=false; // solution temporaire pour que // l'option d'affichage par défaut des labels ne soit plus Billboard // (qui ne fonctionne pas pour l'instant avec obliqueX). import three; size(7.5cm,0); currentprojection=orthographic(5,5,10); //~~~~~~~~~ DEFINITIONS ~~~~~~~~~ // On définit le plan. triple v1=(10,0,0), v2=(0,10,0), pO=(-2,-3,0); path3 pl1=plane(v1,v2,pO); // On définit un chemin path3 ch=(5,3,4)..(5,4,8)..(1,4,4)..(4,-2,3)..cycle; // On définit la projection orthogonale sur le plan pl1 : transform3 proj=planeproject(pl1); // et on définit le projetté de ch : path3 chproj=proj*ch; //~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ // On trace le plan. draw(surface(pl1),paleblue+opacity(.5),blue); // On trace le chemin défini draw(ch,blue); // et son projeté draw(chproj,red); for (int i=0; i < length(ch); ++i) draw(point(ch,i)--point(chproj,i), .5bp+blue+dotted); |
![]() ![]() |
import solids; size(7.5cm,0); currentprojection=orthographic(3,1,2); triple vectaxe=(0,0,1); transform3 r=rotate(90,vectaxe); triple pA=(1,0,1), pB=(4,0,1), pC=(1,0,4); path3 tri=pA--pB--pC--cycle; path3 trip=r*tri; draw(tri^^trip); limits(O,X+Y+Z); xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),Arrow3); zaxis3(Label("$z$",1),Arrow3); pen dotteddash=linetype("0 4 4 4"), p2=.8bp+blue+dotted; draw((0,0,-1)--(0,0,4),red+dotteddash); draw(arc((0,0,pA.z),pA,r*pA,true),p2,Arrow3); draw(arc((0,0,pB.z),pB,r*pB,true),p2,Arrow3); draw(arc((0,0,pC.z),pC,r*pC,true),p2,Arrow3); |
![]() ![]() |
import solids; size(7.5cm,0); currentprojection=orthographic(3,1,2); triple vectaxe=(0,0,1); transform3 r=rotate(270,vectaxe); triple pA=(1,0,1), pB=(4,0,1), pC=(1,0,4); path3 tri=pA--pB--pC--cycle; path3 trip=r*tri; draw(tri^^trip); limits(O,X+Y+Z); xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),Arrow3); zaxis3(Label("$z$",1),Arrow3); pen dotteddash=linetype("0 4 4 4"), p2=.8bp+blue+dotted; draw((0,0,-1)--(0,0,4),red+dotteddash); draw(arc((0,0,pA.z),pA,r*pA,false),p2,Arrow3); draw(arc((0,0,pB.z),pB,r*pB,false),p2,Arrow3); draw(arc((0,0,pC.z),pC,r*pC,false),p2,Arrow3); |
![]() ![]() |
import solids; size(7.5cm,0); currentprojection=orthographic(3,1,2); triple vectaxe=(1,0,0); transform3 r=rotate(-90,vectaxe); triple pA=(1,0,1), pB=(4,0,1), pC=(1,0,4); path3 tri=pA--pB--pC--cycle; path3 trip=r*tri; draw(tri^^trip); limits(O,X+Y+Z); xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),Arrow3); zaxis3(Label("$z$",1),Arrow3); pen dotteddash=linetype("0 4 4 4"), p2=.8bp+blue+dotted; draw((-1,0,0)--(4,0,0),red+dotteddash); draw(arc((pA.x,0,0),pA,r*pA,CCW),p2,Arrow3); // CCW=true=counterclockwise draw(arc((pB.x,0,0),pB,r*pB,CCW),p2,Arrow3); // CW=false draw(arc((pC.x,0,0),pC,r*pC,CCW),p2,Arrow3); |
![]() ![]() |
import bsp; size(7.5cm,0); settings.tex="pdflatex"; currentprojection=orthographic(10,2,5); real alpha = 45; triple pA=(1,0,0), pB=(4,0,3), pC=(3,0,0); transform3 r=rotate(alpha,pB-pA); pen dotteddash=linetype("0 4 4 4"); path3 tri=pA--pB--pC--cycle; for (int i=0; i<360/alpha; ++i) { draw(surface(tri),yellow,blue); tri=r*tri; } triple centrecercleA=(pA+rotate(180,pB-pA)*pA)/2, centrecercleB=(pB+rotate(180,pB-pA)*pB)/2; draw(surface(circle(centrecercleA,abs(pA-centrecercleA),pB-pA)), lightblue+opacity(.3),blue); draw((0,0,0)--centrecercleB,dotteddash+blue); draw(surface(circle(centrecercleB,abs(pB-centrecercleB),pB-pA)), lightblue+opacity(.3),blue); |
![]() ![]() |
import solids; currentprojection=orthographic(5,3,4); size(7.5cm); real a=6,b=4,c=3; draw(box(O,(a,b,c)),blue); limits(O,X+Y+Z); xaxis3(scale(1.5)*Label("$x$",1),green,Arrow3); yaxis3(scale(1.5)*Label("$y$",1),green,Arrow3); zaxis3(scale(1.5)*Label("$z$",1),green,Arrow3); triple pA=(a,b,0), pB=(0,b,0), pC=(0,.9b,c), pM=(a,0,c); transform3 sym=reflect(pA,pB,pC); triple imM=sym*pM, pN=(pM+imM)/2; draw(surface(pA--pB--(pB+pN-pA)--pN--cycle),palegray+opacity(.5)); label("$A$",pA,X); label("$B$",pB,Y); dot("$C$",pC,Z); dot("$M$",pM,Z-Y,red); dot(pN,gray); dot("$M'$",imM,Y-Z,green); draw(pM--imM,1bp+dashed); |
![]() ![]() |
import solids; size(7.5cm,0); currentprojection=orthographic(3,1,2); triple vect=(-.5,1.5,.5); transform3 t=shift(vect); triple pA=(1,0,1), pB=(4,0,1), pC=(1,0,4); path3 tri=pA--pB--pC--cycle, trit=t*tri, tritt=t*t*tri; draw(tri,1bp+.5green); draw(trit^^tritt); limits(O,X+Y+Z); xaxis3(Label("$x$",1),Arrow3); yaxis3(Label("$y$",1),Arrow3); zaxis3(Label("$z$",1),Arrow3); pen p1=.8bp+blue+dotted; draw(pA--pA+vect,p1,Arrow3); draw(pB--pB+vect,p1,Arrow3); draw(pC+vect--pC+2*vect,p1,Arrow3); shipout(format="pdf", bbox(3mm,white)); |
Dernière modification le Fri Oct 28 12:58:11 CEST 2011 par G.Marris Valide XHTML