.geometry "version 0.40";
.l0; 
v1 = .free(-0.0948654, 0.297761, .in, "A");
v2 = .free(0.403856, 0.685354, .in, "B");
c1 = .c.vv(v1, v2);
v3 = .vonc(c1, -0.594287, 0.684451, "C");
v5 = .vonc(c1, 0.534397, 0.243167, "A");
l1 = .l.vv(v5, v3);
v7 = .vonl(l1, 0.00444677, 0.450363, "O");
l2 = .l.vlperp(v7, l1, .in);
v8 = .v.lc(l2, c1, 2, "D");
v9 = .v.lc(l2, c1, 1, "B");
l3 = .l.vv(v9, v8);
l4 = .l.vv(v5, v9);
l5 = .l.vv(v9, v3);
l6 = .l.vv(v3, v8);
l7 = .l.vv(v8, v5);
l8 = .l.vlperp(v7, l4, .in);
v10 = .v.ll(l8, l6, "M");
v11 = .v.ll(l8, l4, "P");
l9 = .l.vv(v11, v10);
.text("If ABCD is a cyclic quadrilateral such that
AC \perp BD, if OP \perp BA, then CM = MD, where M
is the intersection of OP with CD.  Move A, C, or O.
This is Brahmagupta's Theorem.", .l0);
ang1 = .a.vvv(v5, v7, v8, .right);
ang2 = .a.vvv(v5, v11, v10, .right);
.text("\angleOAD = \angleODC since they are inscribed
in the same arc, \arc{CB}.
Similarly, \angleABO = \angleDCO.", .l1);
ang3 = .a.vvv(v7, v5, v9, [.in, .blink, .in]);
ang4 = .a.vvv(v3, v8, v7, [.in, .blink, 2 .in, .blink1, .in]);
ang5 = .a.vvv(v11, v9, v7, [.in, .blink1, .blink, .in], .slash1);
ang6 = .a.vvv(v7, v3, v8, [.in, .blink1, 3 .blink, .in], .slash1);
.text("Since \angleAPO = \angleAOB = 90\degrees, and
\angleOAP is equal to itself, by AA \triangleAPO \similar \triangleAOB,
so \angleAOP = \angleABO (= \angleOCD).", .l2);
ang7 = .a.vvv(v11, v7, v5, [2 .in, 2 .blink, .in], .slash1);
.text("\angleAOP = \angleCOM since they are vertical angles,
and since \angleAOP = \angleOCD, \angleOCD = \angleMOC.", .l3);
ang8 = .a.vvv(v10, v7, v3, [3 .in, 2 .blink, .in], .slash1);
.text("Since \angleMCO = \angleMOC, MO = MC.  Since \triangleDOM
is a right triangle, \angleODM and \angleOCM are supplementary,
and since \angleMOC and \angleMOD are also supplementary,
\angleMOD = \angleODM, so MD = MO (= MC), so we are dome.", .l4);
ang9 = .a.vvv(v8, v7, v10, [4 .in, .blink1, .in]);
l10 = .l.vv(v3, v10, [4 .in, .blink2, .in], .line1slash);
l11 = .l.vv(v10, v7, [4 .in, .blink2, .in], .line1slash);
l12 = .l.vv(v10, v8, [4 .in, .blink2, .in], .line1slash);
.text("Press 'Next' to continue ...", .red, .tol3);
