nCircle
j'ai trouvé cette routine : path Circle(pair c, real r, int n=nCircle);
Mais que signifie donc : nCircle ???
Merci
dédié à Asymptote, puissant langage de graphisme vectoriel.
http://asy.marris.fr/forum/
Code : Tout sélectionner
// Number of function samples.
int ngraph=100;
int nCircle=400;
// Number of mesh intervals.
int nmesh=10;
real ticksize=1mm;
real Ticksize=2*ticksize;
real ylabelwidth=2.0;
real axislabelfactor=1.5;
real axiscoverage=0.8;
real epsilon=10*realEpsilon;
restricted bool Crop=true;
restricted bool NoCrop=false;
Code : Tout sélectionner
Arc(pair c, real r, real angle1, real angle2, int n=nCircle)
Code : Tout sélectionner
Arc(pair c, explicit pair z1, explicit pair z2, bool direction=CCW, int n=nCircle)
Code : Tout sélectionner
Circle(pair c, real r, int n=nCircle)
Code : Tout sélectionner
path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=nCircle)
{
angle1=radians(angle1);
angle2=radians(angle2);
if(direction) {
if(angle1 >= angle2) angle1 -= 2pi;
} else if(angle2 >= angle1) angle2 -= 2pi;
return shift(c)*polargraph(new real(real t){return r;},angle1,angle2,n,
operator ..);
}
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- import graph;
- size(400);
- draw(Circle((0,0),1),dot());
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- import graph;
- size(200);
- draw(unitcircle,dot());
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- import graph;
- size(200);
- draw(Circle((0,0),1),orange);
- draw(unitcircle,dot());
In general, a path is specified as a list of points (or other paths) interconnected with --, which denotes a straight line segment, or .., which denotes a cubic spline (see Chapter 5 [Bezier curves], page 22). Specifying a final ..cycle creates a cyclic path that connects smoothly back to the initial node, as in this approximation (accurate to within 0.06%) of a unit circle:Code : Tout sélectionner
path unitcircle=E..N..W..S..cycle;
zariski a écrit :Suis scotché par tant de savoir !!
zariski a écrit :Il suffit d'assimiler le fait qu'Asymptote construit des courbes "régulières" qu'en utilisant un nombre de points relativement important !
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- unitsize(2cm);
-
- pair z0=(0,0), z1=(7,0),
- c0=(1,3), c1=(5,5);
-
- // On déduit du quadruplet de points précédents (z0, c0, c1, z1)
- // (par construction de 6 milieux) le point z2 sur la courbe de bézier.
- // En procédant de même pour les quadruplets (z0, m0, m3, z2)
- // et (z2, m4, m2, z1), on obtiendrait deux nouveaux points de la courbe,
- // et c'est en continuant ainsi, par récursivité, que la courbe est construite.
-
- pair m0=(z0+c0)/2,
- m1=(c0+c1)/2,
- m2=(c1+z1)/2,
- m3=(m0+m1)/2,
- m4=(m1+m2)/2,
- z2=(m3+m4)/2;
-
- // Courbe (spline) de Bézier cubique (définie par 4 points).
- path CourbeBezier = z0 .. controls c0 and c1 .. z1;
- draw(CourbeBezier,2bp+blue);
-
- // Les traits et points de construction
- path lignebrisee = z0 -- c0 -- c1 -- z1;
- draw(lignebrisee^^m0--m1--m2^^m3--m4,dashed);
- dot(lignebrisee^^m0--m1--m2^^m3--m4^^z2,5bp+red);
-
- // Pour finir, on ajoute le nom des points.
- label("$z_0$",z0,S); label("$z_1$",z1,S);
- label("$c_0$",c0,N); label("$c_1$",c1,N);
- label("$m_0$",m0,NW); label("$m_1$",m1,N);
- label("$m_2$",m2,NE); label("$m_3$",m3,N);
- label("$m_4$",m4,N); label("$z_2$",z2,N);
-
- shipout(bbox(3mm,white));
zariski a écrit :Mais au fait comment as tu fait jusqu'à présent pour en savoir autant sur Asymptote ?