Page 1 sur 1
Point sur un disque et marquage d'un angle droit
Posté : lun. 24 sept. 2018, 19:25
par Fabrice
Bonsoir,
Asymptote ce n'est pas tout à fait comme le vélo, car j'ai beaucoup oublié !
Le but est de reproduire la figure jointe en image. Mon soucis est double : l'angle droit et le rayon du disque de couleur orange. En effet, je ne sais pas comment colorier un disque et donc, j'ai choisi de colorier un arc. Seulement, le point ne se trouve pas sur l'arc.
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
import geometry;
unitsize(0.8cm,0);
point A=(4,0);
point B=(8,0);
point C=(4,-4);
point D=(-3,0);
point E=(3*cos(65),3*sin(65));
filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
filldraw(arc(D,3,0,360)--cycle,orange,black+1bp);
dot(D);
draw(D--E);
distance("4 cm",A,B);
distance("4 cm",A,C);
Merci.
Fabrice
http://image.noelshack.com/fichiers/201 ... -0712.jpg
Re: Point sur un disque et marquage d'un angle droit
Posté : lun. 24 sept. 2018, 20:35
par GM
Bonsoir Fabrice,
le problème est que tu as oublié de définir ton point E à l'aide de D et oublié que les angles sont en radians.
Comme E est une variable déjà définie par défaut dans Asymptote pour définir l'EST, je l'ai remplacé.
J'ai utilisé aussi unitcircle pour le cercle.
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
import geometry;
unitsize(0.8cm,0);
point A=(4,0);
point B=(8,0);
point C=(4,-4);
point D=(-3,0);
real rayon = 3;
real theta = pi/3;
point M= D+(rayon*cos(theta),rayon*sin(theta));
path cercle = shift(D)*scale(rayon)*unitcircle;
filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
filldraw(cercle,orange,black+1bp);
dot(D);
draw("$x$",D--M,Arrows);
distance("4 cm",A,B);
distance("4 cm",A,C);
Re: Point sur un disque et marquage d'un angle droit
Posté : lun. 24 sept. 2018, 22:18
par Fabrice
Bonsoir Gaetan,
Merci, je vais m'y remettre sérieusement car j'ai un peu délaissé au profit de TikZ.
Fabrice
Re: Point sur un disque et marquage d'un angle droit
Posté : mer. 26 sept. 2018, 09:30
par Fabrice
Bonjour Gaetan,
Encore une petite question sur ce code : est-il possible avec la routine distance() de n'avoir que le texte ("4 cm") ?
Merci.
Fabrice
Re: Point sur un disque et marquage d'un angle droit
Posté : mer. 26 sept. 2018, 14:33
par GM
Fabrice a écrit : ↑mer. 26 sept. 2018, 09:30
Bonjour Gaetan,
Encore une petite question sur ce code : est-il possible avec la routine distance() de n'avoir que le texte ("4 cm") ?
Merci.
Fabrice
Bonjour,
Après un petit tour dans geometry.asy pour vérifier la signature de la fonction distance
Code : Tout sélectionner
void distance(picture pic = currentpicture, Label L = "", point A, point B,
bool rotated = true, real offset = 3mm,
pen p = currentpen, pen joinpen = invisible,
arrowbar arrow = Arrows(NoFill))
j'ai tenté cela avec succès :
Re: Point sur un disque et marquage d'un angle droit
Posté : mer. 26 sept. 2018, 16:44
par Fabrice
Bonjour Gaetan,
Merci pour l'aide apportée. J'en ai profité pour parcourir un peu la documentation afin d'y ajouter un angle droit. Pour être complet, je souhaiterais, si possible, remplacer le point par une croix.
Fabrice
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
import geometry;
unitsize(0.8cm,0);
point A=(4,0);
point B=(8,0);
point C=(4,-4);
point D=(-3,0);
real rayon = 3;
real theta = pi/3;
point M= D+(rayon*cos(theta),rayon*sin(theta));
path cercle = shift(D)*scale(rayon)*unitcircle;
line AB=line(A,B);
line AC=line(A,C);
perpendicularmark(AB,AC, quarter=4,size=0.4cm, Fill(paleblue));
filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
filldraw(cercle,orange,black+1bp);
dot(D);
draw("$x$",D--M,Arrows);
distance(Label("4 cm",black),A,B, p=invisible);
distance(Label("4 cm",black),C,A, p=invisible);
Re: Point sur un disque et marquage d'un angle droit
Posté : mer. 26 sept. 2018, 18:21
par GM
Une source d'inspiration :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
marker croix1=marker(scale(2)*cross(4),1bp+blue);
marker croix2=marker(scale(2)*rotate(45)*cross(4),1bp+red);
import geometry;
unitsize(0.8cm,0);
point A=(4,0);
point B=(8,0);
point C=(4,-4);
point D=(-3,0);
real rayon = 3;
real theta = pi/3;
point M= D+(rayon*cos(theta),rayon*sin(theta));
path cercle = shift(D)*scale(rayon)*unitcircle;
line AB=line(A,B);
line AC=line(A,C);
perpendicularmark(AB,AC, quarter=4,size=0.4cm, Fill(paleblue));
filldraw(arc(A,4,0,270)--C--A--B--cycle,green,black+1.5bp);
filldraw(cercle,orange,black+1bp);
draw(D,croix2);
draw(M,croix1);
draw("$x$",D--M,Arrows);
// distance(Label("4 cm",black),A,B, p=invisible);
// distance(Label("4 cm",black),C,A, p=invisible);
draw(Label("4 cm",Relative(.5),align=RightSide),segment(AB));
draw(Label("4 cm",Relative(.5),align=LeftSide),segment(AC));
A noter que si tu n'utilises pas les flèches et lignes de rappel pour les cotations, alors tu peux te passer de distance comme ci-dessus.
Re: Point sur un disque et marquage d'un angle droit
Posté : mer. 26 sept. 2018, 19:03
par Fabrice
Re,
Merci beaucoup.
Fabrice