![]() ![]() |
// Un exemple pour expliquer qu'il y a deux // types possibles pour définir des points : // - le type pair (défini nativement dans asymptote) est // un couple de réels dans le repère par défaut ; // - le type point (défini dans l'extension geometry) // est un couple de réels relatif à un repère choisi. import geometry; size(7cm,0); // Le repère courant est currentcoordsys // et sa valeur par défaut est defaultcoordsys. show(defaultcoordsys); pair pA=(1,.5); point pB=(.5,1); dot("$A$",pA,N,5bp+.5red); dot("$B$",pB,N,5bp+.5blue); // On change de répertoire courant et on l'affiche. currentcoordsys=cartesiansystem((2,1),i=(1,1),j=(-1,1)); show("$O'$","$\vec{u}$","$\vec{v}$",currentcoordsys); // On redéfinit un "pair" et un "point" avec les mêmes coordonnées. pair pAp=(1,.5); point pBp=(.5,1); dot("$A'$",pAp,S,3bp+red); dot("$B'$",pBp,S,3bp+blue); |
![]() ![]() |
// On définit la largeur de l'image ; // la hauteur va s'adapter automatiquement pour garder les proportions. size(6cm,0); // Points définis par coordonnées cartésiennes dot((0,0)); dot((2,2),pink); // Des points particuliers // N(0,1) au Nord, E(1,0) à l'est // S(0,-1) au Sud, W(-1,0) à l'ouest dot(N,blue); dot(E,green); dot(S,red); dot(W,orange); |
![]() ![]() |
// On définit la largeur de l'image ; // la hauteur va s'adapter automatiquement // pour garder les proportions. size(6cm,0); // Points définis par leurs coordonnées cartésiennes dot((0,0)); dot((2,2),pink); // Des points particuliers // NE de coordonnées polaires (1,45°) au Nord-Est, // SE de coordonnées polaires (1,-45°) au Sud-Est, // NW de coordonnées polaires (1,135°) au Nord-Ouest, // SW de coordonnées polaires (1,-135°) au Sud-Ouest dot(NE,blue); dot(SE,green); dot(SW,red); dot(NW,orange); // Le point (1.5,0) peut s'écrire 1.5E dot(1.5E,gray); |
![]() ![]() |
size(6cm,0); // Des points (ou vecteurs selon contexte) // définis par leurs coordonnées pair pO=(0,0), pA=(3,0), pB=(0,2); dot("O",pO,S); dot("A",pA,E,green); dot("B",pB,N,red); // I=(0,1) est une constante prédéfinie dot("I",I,W,blue); // ... bien utile pour définir des points // (ou vecteur) par leur affixe : pair pM=3+3I, pN=-2+I; dot("$M$",pM,N,orange); dot("$N$",pN,W,gray); // On place le point V // tel que vec(OV)=vec(OA)+vec(OB) pair pV=pA+pB; dot("$V$",pV,W,pink); |
![]() ![]() |
// On définit les unités de longueurs. unitsize(1cm,1cm); // Définition d'une suite de points pair [] pA; pA[0]=( 0, 0); pA[1]=( 1, 0); pA[2]=( 1, 1); pA[3]=( 0, 2); pA[4]=(-2, 2); pA[5]=(-4, 0); pA[6]=(-4,-4); for (int i=1; i<=6; ++i) { // début d'une boucle dot(pA[i],blue); // on affiche un point draw(pA[0]--pA[i],green); // on trace un segment } // fin de la boucle dot(pA[0]); |
![]() ![]() |
// On définit les unités de longueurs. unitsize(1cm,1cm); // Définition d'une suite de points pair [] pA = {( 0, 0), ( 1, 0), ( 1, 1), ( 0, 2), (-2, 2), (-4, 0), (-4,-4)}; for (int i=1; i<=6; ++i) { // début d'une boucle draw(pA[0]--pA[i]--pA[i-1],blue); // une ligne brisée dot(pA[i-1]--pA[i],orange); // deux points, extrémités d'un segment } // fin de la boucle dot(pA[0]); |
![]() ![]() |
unitsize(1cm); dot((0,0),red); real w=linewidth(); dot((1,0),linewidth(6w)+red); // taille de point par défaut dot((2,0),linewidth(10w)); dot((3,0),linewidth(15w)); dot((4,0),linewidth(20w)); // Ajout d'un cadre, distant des bords de l'image de 3mm shipout(bbox(5mm,white)); /* remarque : on peut changer la taille de tous les points d'une figure en écrivant : dotfactor=n; */ |
![]() ![]() |
// Définition de la taille de l'image size(5cm,0); // Définition et tracé du segment [AB] pair A=(0,0), B=(4,0); draw(A--B); dot("$A$",A,W); dot("$B$",B,E); // Construction du milieu I de [AB] dot("$I$",(A+B)/2,N); |
![]() ![]() |
size(5cm); int k=0; dot((k,k),2bp+blue,Fill(red)); dot((++k,k),4bp+blue,Fill(red)); dot((++k,k),4bp+blue,UnFill()); dot((++k,k),6bp+green,FillDraw(red,8bp+blue)); |
![]() ![]() |
// Définition de la taille de l'image size(5cm,0); // Définition et tracé du segment [AB] pair A=(0,0), B=(4,0); draw(A--B); // Définition de styles de points marker croix1=marker(scale(2)*cross(4), 1bp+gray); marker croix2=marker(scale(2)*rotate(45)*cross(4), 1bp+red); // Placement des points dans un style particulier draw("$A$",A,W,croix1); draw("$B$",B,E,croix1); // Construction du milieu draw("$I$",midpoint(A--B),S,croix2); |
![]() ![]() |
/* L'extension geometry de Philippe Ivaldi définit : * plusieurs nouvelles structures (types) dont point et segment ; * une nouvelle syntaxe d'utilisation de la fonction midpoint spécifique aux objets de type segment.*/ // import geometry_dev; // extension devenue l'extension geometry officielle import geometry; // le 12/05/09, dans la version 1.71 d'asymptote. :-)) // Définition de la largeur de l'image size(6cm,0); // Définition et tracé du segment [AB] point A=(0,0), B=(4,0); segment sAB=segment(A,B); draw(sAB); dot("$A$",A,W); dot("$B$",B,E); // Construction du milieu I de [AB] dot("$I$",midpoint(sAB),S); |
![]() ![]() |
/* L'extension geometry de Philippe Ivaldi définit : * plusieurs nouvelles structures (types) dont point, triangle et side ; * une nouvelle syntaxe d'utilisation de la fonction midpoint spécifique aux objets de type **side**.*/ // import geometry_dev; // extension devenue l'extension geometry officielle import geometry; // le 12/05/09, dans la version 1.71 d'asymptote. :-)) // Définition de la largeur de l'image size(6cm,0); // Définition du triangle EFG point pE=(0,0),pF=(4,1),pG=(1,2); triangle t=triangle(pE,pF,pG); draw(t);label("$D$","$E$","$F$",t,.5blue); // On définit c1 comme "premier" côté de t side c1=t.AB; // On construit I milieu de [EF] dot("$I$",midpoint(c1),S); |
![]() ![]() |
// Définition de la taille de l'image size(6cm,0); defaultpen(fontsize(10pt)+red); // Stylo par défaut // Définitions pair pA=(0,0), pB=(4,0), pC=(1,2); real a=1, b=3, c=4; path tri=pA--pB--pC--cycle; pair pG=(a*pA+b*pB+c*pC)/(a+b+c), pH=(a*pA+b*pB)/(a+b); // Tracés draw(tri); dot("$(A,1)$",pA,SW); dot("$(B,3)$",pB,E); dot("$(C,4)$",pC,N); for (int k=1; k<=3; ++k) { dot(relpoint(pA--pB,k/4),black); } draw(pH--pC); dot("$G$",pG,SW,fontsize(11pt)+blue); |
![]() ![]() |
// Fonction "conjugué" : pair conj(pair z) import graph; unitsize(1cm); pair pO=(0,0), pM=(3,2); pair pM1=-pM, // symétrique par rapport à l'origine pM2=conj(pM), // symétrique par rapport à l'axe (Ox) pM3=conj(-pM); // symétrique par rapport à l'axe (Oy) // D'autres possibilités pour le conjugué : // pM2=(pM.x,-pM.y) // pM2=pM.x-I*pM.y I=(0,1) xaxis(Ticks(format="%")); yaxis(Ticks(format="%")); dot("$M$",pM,NE); dot("$M_1$",pM1,SW); dot("$M_2$",pM2,SE); dot("$M_3$",pM3,NW); |
![]() ![]() |
// Le même exemple que le précédent // en utilisant des fonctions de l'extension geometry. import geometry; import graph; unitsize(1cm); point pO=(0,0), pM=(3,2); transform sO=scale(-1,pO), // symétrie par rapport à O (homothétie de rapport -1) sOx=reflect(Ox), // réflexion d'axe (Ox) sOy=reflect(Oy); // réflexion d'axe (Oy) // autre possibilité : sO=rotateO(180) point pM1=sO*pM, // image de pM par sO pM2=sOx*pM, // image de pM par sOx pM3=sOy*pM; // image de pM par sOy show(defaultcoordsys); dot("$M$",pM,NE); dot("$M_1$",pM1,SW); dot("$M_2$",pM2,SE); dot("$M_3$",pM3,NW); |
![]() ![]() |
/* Attention, aux fonctions point et truepoint ! Elles ne font pas forcément ce que l'on pourrait croire. */ import geometry; unitsize(10); // 10 bp = 10/72 pouce = 254/72 mm show(defaultcoordsys); pair pA=(5,2), pC=(2,2); draw(circle(pC,8)); dot(pC,red); dot("pA",pA,S,blue); draw((0,0)--point(pA),dashed); draw(Label("point(pA)",W),(6,7)--point(pA),Arrow); |
![]() ![]() |
/* Attention, aux fonctions point et truepoint ! Elles ne font pas forcément ce que l'on pourrait croire. */ import geometry; unitsize(25); // 25 bp = 25/72 pouce = (25*25,4)/72 mm show("","","",defaultcoordsys); pair pA=(5,2), pC=(2,2); draw(shift(-.5,-.5)*unitsquare,gray); draw(unitsquare,gray); draw(circle(pC,4)); dot(pC,red); dot("pA",pA,S,blue); draw(pA--(0,0)--rectify(pA)-(0.5,0.5),dashed); draw(rectify(pA)-(0.5,0.5)--rectify(pA),green,Arrow); draw((0,0)--rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--truepoint(SW)+rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--point(pA),dashed+darkgreen); draw(Label("rectify(pA)",W),(.5,1.5)--rectify(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(4,7)--point(pA),Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(4,4)--truepoint(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(3.5,6.5)--point(pA),red,Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(4,4.5)--truepoint(pA),red,Arrow(SimpleHead)); |
![]() ![]() |
/* Attention, aux fonctions point et truepoint ! Elles ne font pas forcément ce que l'on pourrait croire. */ import geometry; unitsize(25); // 25 bp = 25/72 pouce = (25*25,4)/72 mm show("","","",defaultcoordsys); pair pA=(2,5), pC=(2,2); draw(shift(-.5,-.5)*unitsquare,gray); draw(unitsquare,gray); draw(circle(pC,4)); dot(pC,red); dot("pA",pA,NW,blue); draw(pA--(0,0)--rectify(pA)-(0.5,0.5),dashed); draw(rectify(pA)-(0.5,0.5)--rectify(pA),green,Arrow); draw((0,0)--rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--truepoint(SW)+rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--point(pA),dashed+darkgreen); draw(Label("rectify(pA)",W),(2.5,1.5)--rectify(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(5,4.5)--point(pA),Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(4,3.5)--truepoint(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(5.5,5)--point(pA),red,Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(4.5,3)--truepoint(pA),red,Arrow(SimpleHead)); |
![]() ![]() |
/* Attention, aux fonctions point et truepoint ! Elles ne font pas forcément ce que l'on pourrait croire. */ import geometry; unitsize(25); // 25 bp = 25/72 pouce = (25*25,4)/72 mm show("","","",defaultcoordsys); pair pA=(4.5,-2.4), pC=(2,2); draw(shift(-.5,-.5)*unitsquare,gray); draw(unitsquare,gray); draw(circle(pC,4)); dot(pC,red); dot("pA",pA,S,blue); draw(pA--(0,0)--rectify(pA)-(0.5,0.5),dashed); draw(rectify(pA)-(0.5,0.5)--rectify(pA),green,Arrow); draw((0,0)--rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--truepoint(SW)+rectify(pA),darkgreen,Arrow); draw(truepoint(SW)--truepoint(pA),dashed+darkgreen); draw(Label("rectify(pA)",W),(.2,2)--rectify(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(3,3)--point(pA),Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(4,4)--truepoint(pA),Arrow(SimpleHead)); draw(Label("point(pA)",W),(5.5,2.5)--point(pA),red,Arrow(SimpleHead)); draw(Label("truepoint(pA)",W),(6.5,3.5)--truepoint(pA),red,Arrow(SimpleHead)); |
![]() ![]() |
import math; size(7.5cm); add(grid(4,4,gray)); pair aleapair(real x, real y, real Dx, real Dy=Dx){ return (x+(2*unitrand()-1)*Dx,y+(2*unitrand()-1)*Dy); } pair aleapair(pair pt, real Dx, real Dy=Dx){ return (pt.x+(2*unitrand()-1)*Dx,pt.y+(2*unitrand()-1)*Dy); } srand((int)time("%S")); for(int k=0; k<100; ++k){ dot(aleapair(x=1,y=1,Dx=.5),5bp+unitrand()*red); dot(aleapair(3,1,.25,.75),5bp+unitrand()*blue); dot(aleapair(3,3,.5,.2),5bp+unitrand()*green); dot(aleapair(pt=(1,3),.5),5bp+unitrand()*purple); } dot("$(0,0)$",(0,0),NE); dot("$(2,2)$",(2,2),SW); |
Dernière modification le Fri Oct 28 12:59:03 CEST 2011 par G.Marris Valide XHTML