summaryrefslogtreecommitdiff
path: root/info/drawing-with-metapost/src/nine-point-circle.mp
diff options
context:
space:
mode:
Diffstat (limited to 'info/drawing-with-metapost/src/nine-point-circle.mp')
-rw-r--r--info/drawing-with-metapost/src/nine-point-circle.mp54
1 files changed, 54 insertions, 0 deletions
diff --git a/info/drawing-with-metapost/src/nine-point-circle.mp b/info/drawing-with-metapost/src/nine-point-circle.mp
new file mode 100644
index 0000000000..8366bb3c1b
--- /dev/null
+++ b/info/drawing-with-metapost/src/nine-point-circle.mp
@@ -0,0 +1,54 @@
+\documentclass[border=5mm]{standalone}
+\usepackage{luamplib}
+\begin{document}
+\mplibtextextlabel{enable}
+\begin{mplibcode}
+beginfig(1);
+ pair A, B, C, D, N, M, p, q, r;
+ A = origin; B = 377 dir 10; C = 233 dir 70;
+ % pedal points
+ p = whatever[B, C]; A - p = whatever * (B-C) rotated 90;
+ q = whatever[C, A]; B - q = whatever * (C-A) rotated 90;
+ r = whatever[A, B]; C - r = whatever * (A-B) rotated 90;
+
+ D = whatever[A, p] = whatever[B, q];
+ N = 1/4(A + B + C + D);
+ M = D rotatedabout(N, 180); % M is also the circumcentre
+
+ path circumcircle, nine_point_circle;
+ nine_point_circle = fullcircle scaled 2 abs(N - 1/2[A, B]) shifted N;
+ circumcircle = fullcircle scaled 2 abs(M - A) shifted M;
+
+ draw nine_point_circle withcolor 3/4 red;
+ draw circumcircle withcolor 1/2[3/4 blue, white];
+
+ drawoptions(dashed evenly scaled 1/4 withcolor 1/2);
+ draw 1/2[A,B] -- M -- 1/2[B, C];
+ draw 1/2[C,A] -- M -- D;
+ draw A -- p;
+ draw B -- q;
+ draw C -- r;
+
+ drawoptions(withpen pencircle scaled 1/4);
+ draw fullcircle scaled 2 shifted 1/2[A, B];
+ draw fullcircle scaled 2 shifted 1/2[A, C];
+ draw fullcircle scaled 2 shifted 1/2[A, D];
+ draw fullcircle scaled 2 shifted 1/2[B, C];
+ draw fullcircle scaled 2 shifted 1/2[B, D];
+ draw fullcircle scaled 2 shifted 1/2[C, D];
+ draw fullcircle scaled 2 shifted p;
+ draw fullcircle scaled 2 shifted q;
+ draw fullcircle scaled 2 shifted r;
+
+ drawoptions();
+ draw A--B--C--cycle;
+ dotlabel.llft("$A$", A);
+ dotlabel.rt("$B$", B);
+ dotlabel.ulft("$C$", C);
+ dotlabel.urt("\ $D$", D);
+ dotlabel.llft("$M$", M);
+ dotlabel.llft("$N$", N);
+
+endfig;
+\end{mplibcode}
+\end{document}