http://wiki.noordover.org, un wiki dont l'objectif est modeste : permettre d'écrire facilement, en vrac, à un rythme de sénateur, quelques trucs et astuces divers, pour ne pas les oublier et aider éventuellement d'autres personnes.
Retour au Sommaire de la section du wiki relative Ă Asymptote
[[ Asymptote : fonction LINE ]]
Cette page n'est pas achevée… mais je pense qu'elle peut déjà aider à comprendre quelques subtilités de la fonction LINE de l'extension geometry de Philippe Ivaldi.
On ne confondra le type LINE avec la fonction LINE.
Fonction LINE : syntaxe n°1
line line(coordsys R=currentcoordsys, real slope, real origin)
définit, dans le système de coordonnées R (le système de coordonnées courant quand il n'est pas précisé), la droite de coefficient directeur slope et d'ordonnée à l'origine origin.
/*---------------------------------------------*/ import geometry_dev; size(4cm); show(defaultcoordsys); // d est la droite d'équation y=(-1/2)x+(3/2) line d=line(-1/2,3/2); draw(d); // un rectangle invisible // pour définir la zone affichée draw(box((-1,-1),(2,2.5)),invisible); /*---------------------------------------------*/ | ![]() |
|---|
Fonction LINE : syntaxe n°2
line line(coordsys R=currentcoordsys, real a, real b, real c)
définit, dans le système de coordonnées R (le système de coordonnées courant quand il n'est pas précisé), la droite d'équation
.
/*---------------------------------------------*/ import geometry_dev; size(4cm); show(defaultcoordsys); // d est la droite d'équation 2x+y-2=0 line d=line(2,1,-2); draw(d); // un rectangle invisible // pour définir la zone affichée draw(box((-1,-1),(2,2.5)),invisible); /*---------------------------------------------*/ | ![]() |
|---|
Fonction LINE : syntaxe n°3
line line(explicit side c)
définit la droite qui porte le côté c d'un triangle.
/*---------------------------------------------*/ import geometry_dev; size(4cm,0); pair E=(0,0),F=(4,1),G=(1,2); triangle t=triangle(E,F,G); draw(t); label("$E$","$F$","$G$",t,alignAngle=70,.5blue); // l1 : droite portant le "premier" côté de t line l1=line(t.AB); draw(l1); addMargins(1cm,0cm); /*---------------------------------------------*/ | ![]() |
|---|
A noter que, mĂŞme si le code suivant est valide pour tracer la droite
(alors que t.AB désigne le côté
) :
draw(t.AB);
on préférera, pour plus de lisibilité, le code suivant :
draw(line(t.AB));
En effet, mĂŞme si t.AB est du type side, il est converti automatiquement en type line par draw.
Fonction LINE : syntaxe n°4
line line(point A, bool extendA=true, point B, bool extendB=true)
définit la ligne (droite, demi-droite ou segment) relative aux points A et B. Si extendA est true, la ligne n'est pas limitée du côté de A ; Si extendB est true, la ligne n'est pas limitée du côté de B ; Avec extendA=false et extendB=false, la ligne définie est le segment [AB].
/*---------------------------------------------*/ import geometry_dev; size(4cm); show(defaultcoordsys); point A=(2,2),B=(-1,1); dot(A); dot(B); // d est la demi-droite [BA) line d=line(A,true,B,false); draw(d); // un rectangle invisible // pour définir la zone affichée draw(box((-2,-1),(3,2.5)),invisible); /*---------------------------------------------*/ | ![]() |
|---|
Fonction LINE : syntaxe n°5
line line(real a, point A=point(currentcoordsys,(0,0)))
définit la ligne passant par A avec un angle de mesure a en degrés par rapport à l'axe des abscisses dans le système de coordonnées de A.
/*---------------------------------------------*/ import geometry_dev; size(4cm); show(defaultcoordsys); point A=(2,1); dot(A); // d est la droite passant par A // inclinée de -15° par rapport à (Ox) line d=line(-15,A); draw(d); // un rectangle invisible // pour définir la zone affichée draw(box((-2,-1),(3,2.5)),invisible); /*---------------------------------------------*/ | ![]() |
|---|
Fonction LINE : syntaxe n°6
line line(segment s)
définit la droite qui porte le segment s, donc la droite qui passe par les points s.A et s.B.
/*---------------------------------------------*/ import geometry_dev; size(4cm); show(defaultcoordsys); point A=(2,2),B=(-1,1); dot(A); dot(B); segment AB=segment(A,B); // d est la droite qui porte le segment [AB] line d=line(AB); draw(d); // un rectangle invisible // pour définir la zone affichée draw(box((-2,-1),(3,2.5)),invisible); /*---------------------------------------------*/ | ![]() |
|---|





