Auteur ou autrice : Sergey Slyusarev.
Mise en ligne le 26 décembre 2024
Le paquet byrne
permet de reproduire les figures de l'édition des Éléments d'Euclide par Oliver Byrne.
Cet exemple montre comment construire le cercle circonscrit à un carré donné.
Code
input byrne;
SOLID_LINE := 0;
DASHED_LINE := 1;
SOLID_SECTOR := 0;
REGULAR_WIDTH := 0;
OMIT_FIRST_AND_LAST_LABEL := 2;
u := 1cm;
scaleFactor := 1.0;
textLabels := true;
beginfig(0);
startMainPictureMode;
numeric r;
r := 7/4u;
pair A, B, C, D, E;
E := (0, 0);
A := (dir(45+90)*r) shifted E;
B := (dir(45+180)*r) shifted E;
C := (dir(45+270)*r) shifted E;
D := (dir(45+360)*r) shifted E;
draw byPolygon(A,C,D)(byred);
draw byPolygon(A,B,C)(byyellow);
byAngleDefine(D, A, E, byyellow, SOLID_SECTOR);
byAngleDefine(E, A, B, byblack, SOLID_SECTOR);
byAngleDefine(A, B, E, byred, SOLID_SECTOR);
byAngleDefine(E, B, C, byblue, SOLID_SECTOR);
draw byNamedAngleResized();
draw byLine(A, E, byblue, SOLID_LINE, REGULAR_WIDTH);
draw byLine(E, C, byblue, DASHED_LINE, REGULAR_WIDTH);
byLineDefine(B, E, byblack, SOLID_LINE, REGULAR_WIDTH);
byLineDefine(E, D, byblack, DASHED_LINE, REGULAR_WIDTH);
draw byNamedLineSeq(0)(BE, ED);
draw byCircleR(E, r, byblack, 0, 0, 0);
draw byLabelsOnCircle(A, B, C, D)(E);
draw byLabelsOnPolygon(B, E, A)(OMIT_FIRST_AND_LAST_LABEL, 1);
stopMainPictureMode;
endfig;
end.