TeX - LaTeX Asked on December 17, 2021
What would you suggest for me as I would like to learn how to draw geometric pictures appeared on mathematical competitions like IMO. For example, like this picture here:
This handout by Evan Chen describes two possible workflows, one using GeoGebra and one using Asymptote. There is also a thorough worked example. I've tried out the GeoGebra workflow and it worked for me, but Asymptote is even better because it integrates with TeX; however, it seems slightly more time-consuming.
Answered by Brian Z on December 17, 2021
Plain Metapost has all of the tools you need to do elegant geometrical diagrams like this.
prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
% define the radius
r = 100;
% define four points spaced arbitrarily on a circle of radius r;
z1 = (r,0) rotated 140;
z2 = (r,0) rotated 72;
z3 = (r,0) rotated 3;
z4 = (r,0) rotated -120;
% define the points on the circle half way between these points
% do this by finding the angle of the vector sum of the two points
z11 = (r,0) rotated angle (z1 + z2);
z12 = (r,0) rotated angle (z2 + z3);
z13 = (r,0) rotated angle (z3 + z4);
z14 = (r,0) rotated angle (z4 + z1);
% find the intersection of the lines between opposite mid points
z0 = (z11--z13) intersectionpoint (z12--z14);
% draw the circle in grey
draw fullcircle scaled 2r withcolor .7 white;
% draw some radius lines and a chord in pink
drawoptions(withcolor withcolor .37 red + .5 white);
forsuffixes $=11,12,13,14:
draw origin -- z$;
endfor
draw z11 -- z14;
drawoptions();
% mark the right angle
draw unitsquare scaled 5 rotated angle (z12-z14) shifted z0 withcolor .7 white;
% draw A-B-C-D and P-R and S-Q
draw z11 -- z13; draw z12 -- z14;
draw z1 -- z2 -- z3 -- z4 -- cycle;
% label the points, the "scaled" trick works because everything is centred at origin
s = 13/12;
label("A", z1 scaled s);
label("B", z2 scaled s);
label("C", z3 scaled s);
label("D", z4 scaled s);
label("P", z11 scaled s);
label("Q", z12 scaled s);
label("R", z13 scaled s);
label("S", z14 scaled s);
label("I",z0 shifted (7,-3));
endfig;
end.
Answered by Thruston on December 17, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP