POSITIONS RELATIVES : DROITES, PLANS (9)
Liste des figures
Figure fig_aa01_110708_fonction_plane
figure 0001
Figure fig_aa02_040110_plan
figure 0002
Figure fig_at01_040110_plan_troue
figure 0003
Figure fig_ba01_160708_plans_paralleles
figure 0004
Figure fig_ba02_160708_plans_paralleles
figure 0005
Figure fig_ba03_030110_plans_paralleles
figure 0006
Figure fig_bb01_160708_plans_secants
figure 0007
Figure fig_ca01_160708_plan_droite_secants
figure 0008
Figure fig_pa01_251211_plan_droite_perpendiculaires
figure 0009
Asymptote - Figure 0001: fig_aa01_110708_fonction_plane.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_aa01_110708_fonction_plane
// 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=White;

triple v1=(4,0,0),
       v2=(0,6,0),
       p0=(-2,-3,0);

path3 pl=plane(v1,v2,p0);

draw(surface(pl),orange);

draw(Label("$\vec{v_1}$"),p0--p0+v1,1bp+blue,Arrow3);
draw(Label("$\vec{v_2}$"),p0--p0+v2,N,1bp+blue,Arrow3);
dot("$p_0$",p0,NW);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0002: fig_aa02_040110_plan.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_aa02_040110_plan
// 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 graph3;

size(8cm,0);

currentprojection=obliqueX;
currentlight=White;

path3 pl=(-2,-3,0)--(2,-3,0)--(2,3,0)--(-2,3,0)--cycle;

draw(surface(pl,planar=true),orange);

dot(Label("$(-2,-3,0)$"),(-2,-3,0),N);
label("$(2,3,0)$",(2,3,0),blue);

label("$(2,-3,0)$",(2,-3,0),red,Billboard); // Label qui ne s'affichera
// pas tant que Billboard ne sera pas toléré avec obliqueX.


limits((-3,-4,-2),(3,4,2));
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0003: fig_at01_040110_plan_troue.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_at01_040110_plan_troue
size(7.5cm,0);
import graph3;

currentprojection=perspective(camera=(5,3,3));

path3 p1=shift(-1,-1,0)*scale3(2)*unitsquare3,
      p2=scale3(.25)*unitcircle3;

path3[] p3=shift(.5,.5,0)*p2
           ^^shift(-.5,-.5,0)*p2
           ^^shift(.5,-.5,0)*p2
           ^^shift(-.5,.5,0)*p2;

draw(p1,1bp+red);
draw(p3,1bp+blue);

draw(surface(reverse(p1)^^p3,planar=true),white+opacity(.5));

limits(-1.5X-1.5Y-.5Z,1.5X+1.5Y+Z);
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);
Asymptote - Figure 0004: fig_ba01_160708_plans_paralleles.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ba01_160708_plans_paralleles
// 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).

size(7.5cm,0);
import three;
settings.tex="pdflatex";

currentprojection=obliqueX;
currentlight=nolight;

triple v1=(4,0,0),
       v2=(0,6,0),
       p0=(-2,-3,0);

triple V=(0,0,1.5);

path3 pl1=plane(v1,v2,p0);
path3 pl2=shift(V)*pl1;

draw(surface(pl1),orange);
draw(surface(pl2),lightgrey+opacity(.8));

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0005: fig_ba02_160708_plans_paralleles.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ba02_160708_plans_paralleles
// 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).

size(7.5cm,0);
import three;
settings.tex="pdflatex";

currentprojection=obliqueX;
currentlight=nolight;

triple v1=(4,0,0),
       v2=(0,6,0),
       p0=(-2,-3,0);

triple V=(0,0,1.5);

path3 pl1=plane(v1,v2,p0);
path3 pl2=shift(V)*pl1;

draw(surface(pl1),orange,.5blue);
draw(surface(pl2),lightgrey+opacity(.8),1bp+.8blue);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0006: fig_ba03_030110_plans_paralleles.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ba03_030110_plans_paralleles
size(7.5cm,0);
import three;
for(int i; i<10; ++i)
  for(int j; j<10; ++j)
    draw(shift(2*i,2*j,0)*surface(shift(-1,-1,0)*scale3(2)*unitsquare3
                                  ^^reverse(scale3(.5)*unitcircle3),planar=true),
                 white+opacity(.5));
draw(surface(shift(0,0,-5)*scale3(20)*unitsquare3,planar=true),paleblue);
shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0007: fig_bb01_160708_plans_secants.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_bb01_160708_plans_secants
// 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).

size(7.5cm,0);
import three;
settings.tex="pdflatex";

currentprojection=obliqueX;
currentlight=nolight;

triple v1=(4,0,0),
       v2=(0,6,0),
       p0=(-2,-3,0);

path3 pl1=plane(v1,v2,p0);
path3 pl2=rotate(45,Y)*pl1;

draw(surface(pl1),paleblue);
draw(surface(pl2),gray+opacity(.8),black);

draw(-v2/2--v2/2,.8bp+red);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0008: fig_ca01_160708_plan_droite_secants.asy
(Code compilé avec Asymptote version 1.95svn)
largeur320 Figure fig_ca01_160708_plan_droite_secants
// 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;
import math;
dotgranularity=0; // Render dots as spheres.
size(7.5cm,0);
currentprojection=obliqueX;
currentlight=nolight;

//~~~~~~~~~ DEFINITIONS ~~~~~~~~~ 
// On définit le plan.
triple v1=(4,0,0),
       v2=(0,6,0),
       p0=(-2,-3,0);
path3 pl=plane(v1,v2,p0);
// On définit la droite.
triple ptdr1=(0,2,2), ptdr2=(0,-1,-2);
path3 ligne=ptdr1--ptdr2;
// On définit le point d'intersection de la droite et du plan.
triple[] ptint=intersectionpoints(ligne,surface(pl));

//~~~~~~~~~ CONSTRUCTIONS ~~~~~~~~~ 
// On trace la droite.
draw(ligne,blue);
// On trace le plan.
draw(surface(pl),paleblue);
// On met en évidence le point d'intersection.
dot(ptint[0]);

shipout(bbox(2mm,Fill(white)));
Asymptote - Figure 0009: fig_pa01_251211_plan_droite_perpendiculaires.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_pa01_251211_plan_droite_perpendiculaires
import three;
/////////////////////////////////////////
void angledroit(picture pic=currentpicture,
                triple pO, triple pI, triple pJ, real size=.5, pen p=black,
                projection P=currentprojection){
     triple imI=pO+size*unit(pI-pO),
            imJ=pO+size*unit(pJ-pO),
            imK=imI+imJ-pO;
            draw(imI--imK--imJ,p);
}
/////////////////////////////////////////

size(8cm,0);
currentprojection=orthographic(4,2,4);
triple v1=(9,0,1),
       v2=(0,10,2),
       pM=(0,0,3);
path3  planP = plane(v1,v2,pM);  // Représentation d'un plan dont (pM,v1,v2) est un repère.
transform3 proj=planeproject(planP); 
triple pA=(2,7,11), 
       pB=proj*pA,         // pB projeté orthogonal de pA sur planP
       pC=pM+.8*v1+.7*v2,  // pC point de coordonnées (.8,.7) dans le repère (pM,v1,v2) de planP.
       vnP=unit(cross(v1,v2)),// vecteur normal unitaire au planP
       pD=rotate(90,pC,pC+vnP)*pB;  // point de planP tel que pBpCpD soit triangle rectangle isocèle en pC

draw(surface(planP),paleblue+opacity(.3));
draw(pA--pB--pC--cycle);
dot("$A$",pA); dot("$B$",pB); dot("$C$",pC,dir(pC-pB));
angledroit(pB,pA,pC,red);
angledroit(pC,pD,pB,blue);
angledroit(pC,pD,pA,green);
label("$(P)$",pM,X+Y);
real d=.2;
draw(Label("$(d)$",EndPoint),interp(pC,pD,-d)--interp(pC,pD,1+d));

Dernière modification le Sun Dec 25 11:27:55 CET 2011 par G.Marris       Valide XHTML