Beispiel #1
0
        public IPage120Problem7(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Book I Page 120 Problem 7";

            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 10, 0); points.Add(b);
            Point p = new Point("P", 5, 0); points.Add(p);
            Point d = new Point("D", 7, 8); points.Add(d);
            Point e = new Point("E", 3, 8); points.Add(e);

            //            System.Diagnostics.Debug.Write(new Segment(q, r).FindIntersection(new Segment(p, s)));

            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment be = new Segment(b, e); segments.Add(be);
            Segment ep = new Segment(e, p); segments.Add(ep);
            Segment dp = new Segment(d, p); segments.Add(dp);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(p);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle( p, (Segment)parser.Get(new Segment(a, b))))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(b, a, d)), (Angle)parser.Get(new Angle(a, b, e))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(e, p, a)), (Angle)parser.Get(new Angle(d, p, b))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(d, a, p), new Triangle(e, b, p)));
            goals.Add(new GeometricCongruentSegments(ad, be));
        }
Beispiel #2
0
        public Page1Col1Prob5(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", -3.5, 0); points.Add(a);
            Point b = new Point("B", 3.5, 0); points.Add(b);
            Point c = new Point("C", 0, -3.5 * System.Math.Sqrt(3)); points.Add(c);

            Point d = new Point("D", 0, 0); points.Add(d);
            Point e = new Point("E", -1.75, -3.5 * System.Math.Sqrt(3.0) / 2.0); points.Add(e);
            Point f = new Point("F", 1.75, -3.5 * System.Math.Sqrt(3.0) / 2.0); points.Add(f);

            //Segment ad = new Segment(a, d); segments.Add(ad);
            //Segment bd = new Segment(b, d); segments.Add(bd);
            //Segment ce = new Segment(c, e); segments.Add(ce);

            circles.Add(new Circle(a, 3.5));
            circles.Add(new Circle(b, 3.5));
            circles.Add(new Circle(c, 3.5));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, d)), (Segment)parser.Get(new Segment(b, d))));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, d)), (Segment)parser.Get(new Segment(e, c))));

            known.AddSegmentLength(new Segment(a, d), 3.5);

            goalRegions.Add(parser.implied.GetAtomicRegionByPoint(new Point("", 0, -1)));

            SetSolutionArea(1.975367389);

            problemName = "Class X Page 1 Col 1 Problem 5";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #3
0
        //
        // Polygons only.
        //
        public Page199(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0);   points.Add(a);
            Point b = new Point("B", 5, 0);   points.Add(b);
            Point c = new Point("C", 13, 0);  points.Add(c);
            Point d = new Point("D", 13, 8);  points.Add(d);
            Point e = new Point("E", 5, 8);   points.Add(e);
            Point f = new Point("F", 5, 5);   points.Add(f);
            Point g = new Point("G", 0, 5);   points.Add(g);
            // Point h = new Point("H", 0, 3);   points.Add(h);

            Segment ag = new Segment(a, g); segments.Add(ag);
            Segment fg = new Segment(f, g); segments.Add(fg);
            Segment af = new Segment(a, f); segments.Add(af);
            Segment fd = new Segment(f, d); segments.Add(fd);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment de = new Segment(d, e); segments.Add(de);
            Segment cd = new Segment(c, d); segments.Add(cd);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(b);
            pts.Add(f);
            pts.Add(e);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Quadrilateral abfg = (Quadrilateral)parser.Get(new Quadrilateral(ag,
                                                                             (Segment)parser.Get(new Segment(b, f)),
                                                                             fg,
                                                                             (Segment)parser.Get(new Segment(a, b))));
            given.Add(new Strengthened(abfg, new Square(abfg)));

            Quadrilateral bcde = (Quadrilateral)parser.Get(new Quadrilateral((Segment)parser.Get(new Segment(b, e)),
                                                                             cd,
                                                                             de,
                                                                             (Segment)parser.Get(new Segment(b, c))));
            given.Add(new Strengthened(bcde, new Square(bcde)));

            known.AddSegmentLength(de, 8);
            known.AddSegmentLength(ag, 5);

            List<Point> wanted = new List<Point>();
            wanted.Add(new Point("", 4.9, 4.9));
            wanted.Add(new Point("", 5.1, 4.9));
            wanted.Add(new Point("", 5.5, 5.1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(12.5);

            problemName = "Singapore Problem Page 199";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
        public BasicPolygonTester(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", -2, 0); points.Add(a);
            Point b = new Point("B", 0, 6); points.Add(b);
            Point c = new Point("C", 2, 0); points.Add(c);
            Point d = new Point("D", 3, -1); points.Add(d);
            Point e = new Point("E", 1, 3); points.Add(e);
            Point f = new Point("F", 0, 0); points.Add(f);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment ca = new Segment(c, a); segments.Add(ca);

            Segment de = new Segment(d, e); segments.Add(de);
            Segment ef = new Segment(e, f); segments.Add(ef);
            Segment fd = new Segment(f, d); segments.Add(fd);

            Segment cd = new Segment(c, d); segments.Add(cd);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            // The goal is the entire area of the figure.
            goalRegions = new List<GeometryTutorLib.Area_Based_Analyses.Atomizer.AtomicRegion>(parser.implied.atomicRegions);
        }
Beispiel #5
0
        public Page145Problem04(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 145 Problem 4";

            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 5, 0); points.Add(b);
            Point d = new Point("D", 1, 4); points.Add(d);
            Point c = new Point("C", 6, 4); points.Add(c);
            Point l = new Point("L", 2, 3); points.Add(l);
            Point m = new Point("M", 4, 1); points.Add(m);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment al = new Segment(a, l); segments.Add(al);
            Segment cm = new Segment(c, m); segments.Add(cm);

            List<Point> pts = new List<Point>();
            pts.Add(d);
            pts.Add(l);
            pts.Add(m);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ab, cd));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(c, d, l)), (Angle)parser.Get(new Angle(m, b, a))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(d, a, l)), (Angle)parser.Get(new Angle(m, c, b))));

            goals.Add(new GeometricCongruentSegments(al, cm));
        }
Beispiel #6
0
        public Page3Prob23(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point q = new Point("Q", -2, 0); points.Add(q);
            Point p = new Point("P", 2, 0); points.Add(p);
            Point o = new Point("O", 0, 0); points.Add(o);

            List<Point> pts = new List<Point>();
            pts.Add(q);
            pts.Add(o);
            pts.Add(p);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(o, 4));
            circles.Add(new Circle(p, 2));
            circles.Add(new Circle(q, 2));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(o, q)), 2);
            known.AddSegmentLength((Segment)parser.Get(new Segment(p, o)), 2);

            List<Point> wanted = new List<Point>();
            wanted.Add(new Point("", 0, -3));
            wanted.Add(new Point("", -2, -1));
            wanted.Add(new Point("", -2, 1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(8 * System.Math.PI);

            problemName = "Jurgensen Page 3 Problem 23";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #7
0
        public Page146Problem17(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 146 Problem 17";

            Point d = new Point("D", 2, 3); points.Add(d);
            Point b = new Point("B", 10, 0); points.Add(b);
            Point a = new Point("A", 0, 0); points.Add(a);
            Point c = new Point("C", 8, 3); points.Add(c);
            Point m = new Point("M", 5, 0); points.Add(m);

            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment bd = new Segment(b, d); segments.Add(bd);
            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment dm = new Segment(d, m); segments.Add(dm);
            Segment cm = new Segment(c, m); segments.Add(cm);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(m);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, m)), (Segment)parser.Get(new Segment(b, m))));
            given.Add(new GeometricCongruentSegments(ad, bc));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(m, d, c)), (Angle)parser.Get(new Angle(m, c, d))));
        }
        public JPage153Problem09(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Book J Page 153 Problem 9";

            Point a = new Point("A", 2, 3); points.Add(a);
            Point b = new Point("B", 0, 0); points.Add(b);
            Point c = new Point("C", 5, 0); points.Add(c);
            Point d = new Point("D", 2.5, 0); points.Add(d);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment ac = new Segment(a, c); segments.Add(ac);

            List<Point> pts = new List<Point>();
            pts.Add(b);
            pts.Add(d);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            // given.Add(new GeometricProportionalSegments((Segment)parser.Get(new Segment(b, d)), (Segment)parser.Get(new Segment(c, d))));
            // given.Add(new GeometricProportionalSegments(ab, ac));
        }
Beispiel #9
0
        public IPage119Problem3(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "I Page 119 Problem 3";

            Point a = new Point("A", 4, 0); points.Add(a);
            Point b = new Point("B", 4, 10); points.Add(b);
            Point c = new Point("C", 8, 10); points.Add(c);
            Point d = new Point("D", 0, 0); points.Add(d);
            Point o = new Point("O", 4, 5); points.Add(o);

            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment bc = new Segment(b, c); segments.Add(bc);

            List<Point> pts = new List<Point>();
            pts.Add(d);
            pts.Add(o);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(b);
            pts.Add(o);
            pts.Add(a);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ad, bc));
            given.Add(new Perpendicular(parser.GetIntersection(ad, new Segment(a, b))));
            given.Add(new Perpendicular(parser.GetIntersection(bc, new Segment(a, b))));

            goals.Add(new SegmentBisector(parser.GetIntersection((Segment)parser.Get(new Segment(c, d)), (Segment)parser.Get(new Segment(a, b))), (Segment)parser.Get(new Segment(c, d))));
        }
Beispiel #10
0
        public Page229Problem05(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 229 Problem 05";

            Point a = new Point("A", 13.0 / 2.0, 3.0); points.Add(a);
            Point b = new Point("B", 0, 3); points.Add(b);
            Point c = new Point("C", 2, 0); points.Add(c);
            Point e = new Point("E", 13.0 / 3.0, 3); points.Add(e);
            Point f = new Point("F", 5, 2); points.Add(f);

            Segment bc = new Segment(c, b); segments.Add(bc);
            Segment ef = new Segment(e, f); segments.Add(ef);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(f);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(b);
            pts.Add(e);
            pts.Add(a);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);
        }
Beispiel #11
0
        public Page164Problem36(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 164 Problem 36";

            Point a = new Point("A", 11, 8); points.Add(a);
            Point b = new Point("B", 10, 8); points.Add(b);
            Point c = new Point("C", 10, 11); points.Add(c);
            Point d = new Point("D", 0, 8);  points.Add(d);
            Point e = new Point("E", 0, 0);   points.Add(e);
            Point f = new Point("F", 10, 0);  points.Add(f);

            Segment de = new Segment(d, e); segments.Add(de);
            Segment ef = new Segment(e, f); segments.Add(ef);

            List<Point> pts = new List<Point>();
            pts.Add(f);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(d);
            pts.Add(b);
            pts.Add(a);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(b, d, e)), (Angle)parser.Get(new Angle(c, b, d))));

            goals.Add(new GeometricParallel(de, new Segment(f, c)));
        }
Beispiel #12
0
        //Demonstrates: If a quad is inscribed in a circle, then its opposite angles are supplementary
        public Page312Corollary2(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point o = new Point("O", 0, 0); points.Add(o);

            //Points and segments for an inscribed rectangle
            Point r = new Point("R", -3, 4); points.Add(r);
            Point s = new Point("S", 3, 4); points.Add(s);
            Point t = new Point("T", 3, -4); points.Add(t);
            Point u = new Point("U", -3, -4); points.Add(u);

            Segment rs = new Segment(r, s); segments.Add(rs);
            Segment st = new Segment(s, t); segments.Add(st);
            Segment tu = new Segment(t, u); segments.Add(tu);
            Segment ur = new Segment(u, r); segments.Add(ur);

            Circle c = new Circle(o, 5.0);
            circles.Add(c);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Angle angle1 = (Angle)parser.Get(new Angle(r, s, t));
            Angle angle2 = (Angle)parser.Get(new Angle(u, r, s));
            Angle angle3 = (Angle)parser.Get(new Angle(s, t, u));

            given.Add(new Strengthened(angle1, new RightAngle(angle1)));
            given.Add(new GeometricCongruentAngles(angle2, angle3));

            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(ur, st, rs, tu));
            goals.Add(new Strengthened(quad, new Rectangle(quad)));
        }
Beispiel #13
0
        public Page144Problem02(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 144 Problem 2";

            Point a = new Point("A", 0, 20); points.Add(a);
            Point b = new Point("B", 5, 32); points.Add(b);
            Point c = new Point("C", 45, 20); points.Add(c);
            Point d = new Point("D", 40, 8); points.Add(d);
            Point e = new Point("E", 5, 20); points.Add(e);
            Point f = new Point("F", 40, 20); points.Add(f);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment be = new Segment(b, e); segments.Add(be);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment df = new Segment(d, f); segments.Add(df);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(e);
            pts.Add(f);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(ab), (Segment)parser.Get(cd)));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(ad), (Segment)parser.Get(bc)));
            given.Add(new RightAngle(a, e, b));
            given.Add(new RightAngle(c, f, d));

            goals.Add(new GeometricCongruentSegments(be, df));
        }
        public TwoCircleInteriorTangent(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point x = new Point("X", 5, 0);   points.Add(x);
            Point y = new Point("Y", 10, 0);   points.Add(y);
            Point a = new Point("A", 0, 0); points.Add(a);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(x);
            pts.Add(y);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(x, 5.0));
            circles.Add(new Circle(y, 10.0));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(a, y)), 10);

            List<Point> wanted = new List<Point>();
            wanted.Add(new Point("", 10, 1));
            wanted.Add(new Point("", 10, -1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(75 * System.Math.PI);

            problemName = "ACT Practice Problem 1";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #15
0
        public Page242Problem21(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 242 Problem 21";

            Point t = new Point("T", 0, 0); points.Add(t);
            Point s = new Point("S", 6, 8); points.Add(s);
            Point o = new Point("O", 9, 12); points.Add(o);
            Point v = new Point("V", 13, 8); points.Add(v);
            Point w = new Point("W", 21, 0); points.Add(w);

            Segment tw = new Segment(t, w); segments.Add(tw);
            Segment sv = new Segment(s, v); segments.Add(sv);

            List<Point> pts = new List<Point>();
            pts.Add(t);
            pts.Add(s);
            pts.Add(o);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(o);
            pts.Add(v);
            pts.Add(w);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricParallel((Segment)parser.Get(tw), (Segment)parser.Get(sv)));
        }
Beispiel #16
0
        public Page156Problem36(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 156 Problem 36";

            Point j = new Point("J", 0, 10);  points.Add(j);
            Point k = new Point("K", 10, 10); points.Add(k);
            Point l = new Point("L", 20, 10); points.Add(l);
            Point m = new Point("M", 5, 0);   points.Add(m);
            Point n = new Point("N", 15, 0);  points.Add(n);

            Segment jm = new Segment(j, m); segments.Add(jm);
            Segment km = new Segment(k, m); segments.Add(km);
            Segment kn = new Segment(k, n); segments.Add(kn);
            Segment ln = new Segment(l, n); segments.Add(ln);

            List<Point> pts = new List<Point>();
            pts.Add(j);
            pts.Add(k);
            pts.Add(l);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(m, j, k)), (Angle)parser.Get(new Angle(m, k, j))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(n, k, l)), (Angle)parser.Get(new Angle(n, l, k))));
            given.Add(new GeometricParallel(jm, kn));

            goals.Add(new GeometricParallel(km, ln));
        }
Beispiel #17
0
        public Page146Problem13(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 146 Problem 13";

            Point g = new Point("G", 0, 0); points.Add(g);
            Point d = new Point("D", 3, 2); points.Add(d);
            Point e = new Point("E", 7, 0); points.Add(e);
            Point h = new Point("H", 2, 0); points.Add(h);
            Point k = new Point("K", 5, 0); points.Add(k);
            Point f = new Point("F", 4, -2); points.Add(f);

            Segment dg = new Segment(d, g); segments.Add(dg);
            Segment de = new Segment(d, e); segments.Add(de);
            Segment dh = new Segment(d, h); segments.Add(dh);
            Segment fg = new Segment(f, g); segments.Add(fg);
            Segment fk = new Segment(f, k); segments.Add(fk);
            Segment ef = new Segment(e, f); segments.Add(ef);

            List<Point> pts = new List<Point>();
            pts.Add(g);
            pts.Add(h);
            pts.Add(k);
            pts.Add(e);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(de, fg));
            given.Add(new GeometricCongruentSegments(dg, ef));
            given.Add(new Strengthened((Angle)parser.Get(new Angle(h, d, e)), new RightAngle(h, d, e)));
            given.Add(new Strengthened((Angle)parser.Get(new Angle(k, f, g)), new RightAngle(k, f, g)));

            goals.Add(new GeometricCongruentSegments(dh, fk));
        }
Beispiel #18
0
        public Page243Problem15(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 243 Problem 15";

            Point d = new Point("D", 4, 24); points.Add(d);
            Point f = new Point("F", 3, 18); points.Add(f);
            Point h = new Point("H", 1, 6); points.Add(h);
            Point e = new Point("E", 5, 24); points.Add(e);
            Point g = new Point("G", 8, 18); points.Add(g);
            Point j = new Point("J", 14, 6); points.Add(j);

            Segment de = new Segment(d, e); segments.Add(de);
            Segment fg = new Segment(f, g); segments.Add(fg);
            Segment hj = new Segment(h, j); segments.Add(hj);

            List<Point> pts = new List<Point>();
            pts.Add(d);
            pts.Add(f);
            pts.Add(h);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(e);
            pts.Add(g);
            pts.Add(j);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricParallel((Segment)parser.Get(de), (Segment)parser.Get(fg)));
            given.Add(new GeometricParallel((Segment)parser.Get(hj), (Segment)parser.Get(fg)));
        }
Beispiel #19
0
        public Page242Problem17(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 242 Problem 17";

            Point a = new Point("A", 1, 5); points.Add(a);
            Point b = new Point("B", 5, 5); points.Add(b);
            Point c = new Point("C", 0, 0); points.Add(c);
            Point d = new Point("D", 6, 0); points.Add(d);
            Point n = new Point("N", 3, 3); points.Add(n);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment cd = new Segment(c, d); segments.Add(cd);

            List<Point> pts = new List<Point>();
            pts.Add(c);
            pts.Add(n);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(a);
            pts.Add(n);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(c, b, a)), (Angle)parser.Get(new Angle(a, d, c))));

            goals.Add(new GeometricSimilarTriangles(new Triangle(n, c, d), new Triangle(n, a, b)));
        }
Beispiel #20
0
        public Page1Col2Prob1(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", 0, -35); points.Add(a);
            Point b = new Point("B", 35, 0); points.Add(b);
            Point o = new Point("O", 0, 0); points.Add(o);
            Point p = new Point("P", 0, 35); points.Add(p);

            Segment ob = new Segment(o, b); segments.Add(ob);
            Segment oa = new Segment(o, a); segments.Add(oa);
            Segment ab = new Segment(a, b); segments.Add(ab);

            circles.Add(new Circle(o, 35.0));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new RightAngle((Angle)parser.Get(new Angle(a, o, b))));

            known.AddSegmentLength(ob, 35);

            goalRegions.AddRange(parser.implied.GetAllAtomicRegionsWithoutPoint(new Point("", 24.7, -24.7)));

            SetSolutionArea(3498.83825);

            problemName = "Class X Page 1 Col 2 Problem 1";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #21
0
        public Page145Problem07(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 145 Problem 7";

            Point f = new Point("F", 0, 5); points.Add(f);
            Point l = new Point("L", 4, 7); points.Add(l);
            Point k = new Point("K", 4, 3); points.Add(k);
            Point a = new Point("A", 5, 5); points.Add(a);
            Point j = new Point("J", 3, 5); points.Add(j);

            Segment fl = new Segment(f, l); segments.Add(fl);
            Segment fk = new Segment(f, k); segments.Add(fk);
            Segment al = new Segment(a, l); segments.Add(al);
            Segment ak = new Segment(a, k); segments.Add(ak);
            Segment jl = new Segment(j, l); segments.Add(jl);
            Segment jk = new Segment(j, k); segments.Add(jk);

            List<Point> pts = new List<Point>();
            pts.Add(f);
            pts.Add(j);
            pts.Add(a);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(al, ak));
            given.Add(new GeometricCongruentSegments(fl, fk));

            goals.Add(new GeometricCongruentSegments(jl, jk));
        }
Beispiel #22
0
        public IPage120Problem6(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Book I Page 120 Problem 6";

            Point a = new Point("A", 2, 6);  points.Add(a);
            Point b = new Point("B", 0, 0);  points.Add(b);
            Point c = new Point("C", 10, 0); points.Add(c);
            Point d = new Point("D", 4, 0);  points.Add(d);
            Point e = new Point("E", 12, 6); points.Add(e);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment ae = new Segment(a, e); segments.Add(ae);
            Segment ec = new Segment(e, c); segments.Add(ec);
            Segment de = new Segment(d, e); segments.Add(de);

            List<Point> pts = new List<Point>();
            pts.Add(b);
            pts.Add(d);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ac, ae));
            given.Add(new GeometricCongruentSegments(ab, ad));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(b, a, d)), (Angle)parser.Get(new Angle(e, a, c))));

            goals.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(b, c)), de));
        }
Beispiel #23
0
        public Page223Problem24(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 223 Problem 24";

            Point b = new Point("B", 2, 4); points.Add(b);
            Point n = new Point("N", 8, 4); points.Add(n);
            Point l = new Point("L", 0, 0); points.Add(l);
            Point c = new Point("C", 10, 0); points.Add(c);
            Point m = new Point("M", 5, 2.5); points.Add(m);

            Segment cl = new Segment(c, l); segments.Add(cl);
            Segment bn = new Segment(b, n); segments.Add(bn);

            List<Point> pts = new List<Point>();
            pts.Add(l);
            pts.Add(m);
            pts.Add(n);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(b);
            pts.Add(m);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(m, b, n)), (Angle)parser.Get(new Angle(m, c, l))));
        }
Beispiel #24
0
        public Page23Theorem11(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Midpoint Theorem";

            Point a = new Point("A", -3, 0); points.Add(a);
            Point m = new Point("M", 0, 0);  points.Add(m);
            Point b = new Point("B", 3, 0);  points.Add(b);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(m);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle( m, (Segment)parser.Get(new Segment(a, b))))));

            Multiplication product1 = new Multiplication(new NumericValue(2), (Segment)parser.Get(new Segment(a, m)));
            goals.Add(new GeometricSegmentEquation(product1, (Segment)parser.Get(new Segment(a, b))));

            Multiplication product2 = new Multiplication(new NumericValue(2), (Segment)parser.Get(new Segment(m, b)));
            goals.Add(new GeometricSegmentEquation(product2, (Segment)parser.Get(new Segment(a, b))));
        }
Beispiel #25
0
        public Page6Row3Prob32c(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point r = new Point("R", -8 * System.Math.Sin(0.3 * System.Math.PI), 8 * System.Math.Cos(0.3 * System.Math.PI)); points.Add(r);
            Point p = new Point("P", 0, 0); points.Add(p);
            Point s = new Point("S", 8 * System.Math.Sin(0.3 * System.Math.PI), 8 * System.Math.Cos(0.3 * System.Math.PI)); points.Add(s);
            Point q = new Point("Q", 0, -4); points.Add(q);

            Segment rp = new Segment(r, p); segments.Add(rp);
            Segment ps = new Segment(p, s); segments.Add(ps);
            Segment pq = new Segment(p, q); segments.Add(pq);

            circles.Add(new Circle(p, 8));
            circles.Add(new Circle(q, 4));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength(pq, 4);
            known.AddAngleMeasureDegree((Angle)parser.Get(new Angle(r, p, s)), 108);

            List<Point> wanted = new List<Point>();
            wanted.Add(new Point("", 7, 0));
            wanted.Add(new Point("", -7, 0));
            wanted.Add(new Point("", -2, 1));
            wanted.Add(new Point("", 2, 1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(28.8 * System.Math.PI);

            problemName = "McDougall Page 6 Row 3 Problem 32c";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #26
0
        public Page147Problem21(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point d = new Point("D", 6, 6); points.Add(d);
            Point b = new Point("B", 9, 0); points.Add(b);
            Point a = new Point("A", 3, 0); points.Add(a);
            Point c = new Point("C", 11, 4); points.Add(c);
            Point e = new Point("E", 1, 4); points.Add(e);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment ae = new Segment(a, e); segments.Add(ae);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment bd = new Segment(b, d); segments.Add(bd);
            Segment be = new Segment(b, e); segments.Add(be);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment ce = new Segment(c, e); segments.Add(ce);
            Segment de = new Segment(d, e); segments.Add(de);

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(ae), (Segment)parser.Get(bc)));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(ad), (Segment)parser.Get(bd)));
        }
Beispiel #27
0
        public Page223Problem23(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 223 Problem 23";

            Point j = new Point("J", 0, 0); points.Add(j);
            Point i = new Point("I", 3, 3); points.Add(i);
            Point y = new Point("Y", 7, 7); points.Add(y);
            Point g = new Point("G", 6, 0); points.Add(g);
            Point z = new Point("Z", 7, 0); points.Add(z);

            Segment ig = new Segment(i, g); segments.Add(ig);
            Segment yz = new Segment(y, z); segments.Add(yz);

            List<Point> pts = new List<Point>();
            pts.Add(j);
            pts.Add(i);
            pts.Add(y);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(j);
            pts.Add(g);
            pts.Add(z);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(j, g, i)), (Angle)parser.Get(new Angle(j, y, z))));

            goals.Add(new GeometricSimilarTriangles((Triangle)parser.Get(new Triangle(j, i, g)), (Triangle)parser.Get(new Triangle(j, z, y))));
        }
Beispiel #28
0
        public Page226Problem42(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 226 Problem 42";

            Point j = new Point("J", 0, 0); points.Add(j);
            Point k = new Point("K", 0, 12); points.Add(k);
            Point l = new Point("L", 3, 2); points.Add(l);
            Point m = new Point("M", 3, 10); points.Add(m);
            Point n = new Point("N", 9, 6); points.Add(n);

            Segment jk = new Segment(j, k); segments.Add(jk);
            Segment lm = new Segment(l, m); segments.Add(lm);

            List<Point> pts = new List<Point>();
            pts.Add(j);
            pts.Add(l);
            pts.Add(n);
            collinear.Add(new Collinear(pts));

            pts = new List<Point>();
            pts.Add(k);
            pts.Add(m);
            pts.Add(n);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new IsoscelesTriangle((Segment)parser.Get(new Segment(k, n)), (Segment)parser.Get(new Segment(j, n)), jk));
            given.Add(new GeometricParallel(jk, lm));

            goals.Add(new Strengthened((Triangle)parser.Get(new Triangle(n, m, l)),  new IsoscelesTriangle((Triangle)parser.Get(new Triangle(n, m, l)))));
        }
Beispiel #29
0
        public Page69Problem14(bool onoff, bool complete)
            : base(onoff, complete)
        {
            problemName = "Page 69 Problem 14";

            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 7, -6); points.Add(b);
            Point c = new Point("C", 14, 0); points.Add(c);
            Point d = new Point("D", 7, 0); points.Add(d);

            Segment ba = new Segment(b, a); segments.Add(ba);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment bd = new Segment(b, d); segments.Add(bd);

            List<Point> pts = new List<Point>();
            pts.Add(a);
            pts.Add(d);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

                        parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ba, bc));
            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle(d, (Segment)parser.Get(new Segment(a, c))))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(a, b, d), new Triangle(c, b, d)));
        }
Beispiel #30
0
        public Page6Row5Prob4(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point o = new Point("O", 0, 0); points.Add(o);
            Point a = new Point("A", 0, 11); points.Add(a);
            Point b = new Point("B", 0, -33); points.Add(b);

            List<Point> pnts = new List<Point>();
            pnts.Add(a);
            pnts.Add(o);
            pnts.Add(b);
            collinear.Add(new Collinear(pnts));

            circles.Add(new Circle(o, 11));
            circles.Add(new Circle(o, 33));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(a, o)), 11);
            known.AddSegmentLength((Segment)parser.Get(new Segment(o, b)), 33);

            List<Point> wanted = new List<Point>();
            wanted.Add(new Point("", 20, 1));
            wanted.Add(new Point("", -20, 1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(968 * System.Math.PI);

            problemName = "McDougall Page 6 Row 5 Problem 4";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #31
0
        public RightRight(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 0, 24); points.Add(b);
            Point c = new Point("C", 0, 48); points.Add(c);
            Point d = new Point("D", 48, 0); points.Add(d);
            Point e = new Point("E", 24, 0); points.Add(e);

            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment be = new Segment(b, e); segments.Add(be);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(a);
            pts.Add(e);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new RightAngle(c, a, d));
            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle(b, (Segment)parser.Get(new Segment(a, c))))));
            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle(e, (Segment)parser.Get(new Segment(a, d))))));

            known.AddSegmentLength((Segment)parser.Get(new Segment(a, c)), 48);
            known.AddSegmentLength((Segment)parser.Get(new Segment(a, d)), 48);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 24, 23));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(864);

            problemName = "Right Triangle - Right Triangle  Synthesis";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #32
0
        public MgProb8(bool onoff, bool complete)
            : base(onoff, complete)
        {
            double y = 4 * System.Math.Sqrt(3);
            Point  a = new Point("A", 0, 0); points.Add(a);
            Point  b = new Point("B", 4, 4); points.Add(b);
            Point  c = new Point("C", 4, 0); points.Add(c);
            Point  m = new Point("M", 2, 2); points.Add(m);

            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment bc = new Segment(b, c); segments.Add(bc);

            List <Point> pnts = new List <Point>();

            pnts.Add(a);
            pnts.Add(m);
            pnts.Add(b);
            collinear.Add(new Collinear(pnts));

            Circle circle1 = new Circle(m, System.Math.Sqrt(32) / 2.0);
            Circle circle2 = new Circle(c, 4);

            circles.Add(circle1);
            circles.Add(circle2);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Angle a1 = (Angle)parser.Get(new Angle(a, c, b));

            given.Add(new Strengthened(a1, new RightAngle(a1)));

            known.AddSegmentLength(ac, 4);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 2, 4));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(8);

            problemName = "Magoosh Problem 8";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #33
0
        // Geometry; Page 178 Self Test 07
        // CURRENTLY NOT WORKING
        // Given that a quad is a parallelogram with congruent diagonals, it should be possible to prove that the quad is also a rectangle
        // Right now, the missing step is the ability to prove that two angles are right angles if they are both supplementary and congruent
        // Once an angle is proved to be a right angle, the rectangle definiton instantiator can prove a parallelogram is a rectangle

        public Page178SelfTest07(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 178 Self Test Problem 7";

            Point w = new Point("W", 0, 0); points.Add(w);
            Point x = new Point("X", 7, 0); points.Add(x);
            Point y = new Point("Y", 7, 5); points.Add(y);
            Point z = new Point("Z", 0, 5); points.Add(z);
            Point q = new Point("Q", 3.5, 2.5); points.Add(q);

            //rectangle sides
            Segment wx = new Segment(w, x); segments.Add(wx);
            Segment xy = new Segment(x, y); segments.Add(xy);
            Segment yz = new Segment(y, z); segments.Add(yz);
            Segment zw = new Segment(z, w); segments.Add(zw);

            List <Point> pts = new List <Point>();

            pts.Add(z);
            pts.Add(q);
            pts.Add(x);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(w);
            pts.Add(q);
            pts.Add(y);
            collinear.Add(new Collinear(pts));

            //rectangle diagonals
//            Segment wy = new Segment(w, y); segments.Add(wy);
//            Segment xz = new Segment(x, z); segments.Add(xz);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(wx, yz));
            given.Add(new GeometricCongruentSegments(xy, zw));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(w, y)), (Segment)parser.Get(new Segment(x, z))));

            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(zw, xy, yz, wx));

            goals.Add(new Strengthened(quad, new Rectangle(quad)));
        }
        // Simple demonstration of theorem "Median of a trapezoid is parallel to the bases"
        public Page174Theorem416_1(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 174 Theorem 4-16 Part 1";


            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 11, 0); points.Add(b);
            Point c = new Point("C", 7, 4); points.Add(c);
            Point d = new Point("D", 2, 4); points.Add(d);
            Point m = new Point("M", 1, 2); points.Add(m);
            Point n = new Point("N", 9, 2); points.Add(n);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment mn = new Segment(m, n); segments.Add(mn);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(m);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(b);
            pts.Add(n);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Segment       ad   = (Segment)parser.Get(new Segment(a, d));
            Segment       bc   = (Segment)parser.Get(new Segment(b, c));
            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(ad, bc, cd, ab));

            //given.Add(new Strengthened(quad, new Trapezoid(ad, bc, cd, ab)));
            given.Add(new Parallel(ab, cd));
            given.Add(new SegmentBisector(parser.GetIntersection(mn, ad), mn));
            given.Add(new SegmentBisector(parser.GetIntersection(mn, bc), mn));

            goals.Add(new Parallel(mn, cd));
            goals.Add(new Parallel(mn, ab));
        }
Beispiel #35
0
        public Page1Col1Prob1(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 10.54, 6.72); points.Add(a);
            Point b = new Point("B", 12.5, 0); points.Add(b);
            Point c = new Point("C", -12.5, 0); points.Add(c);
            Point d = new Point("D", 0, -12.5); points.Add(d);
            Point o = new Point("O", 0, 0); points.Add(o);

            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment od = new Segment(o, d); segments.Add(od);

            List <Point> pts = new List <Point>();

            pts.Add(c);
            pts.Add(o);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(o, 12.5));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new RightAngle((Angle)parser.Get(new Angle(b, o, d))));

            known.AddSegmentLength(ac, 24);
            known.AddSegmentLength(ab, 7);
            //known.AddAngleMeasureDegree((Angle)parser.Get(new Angle(b, o, d)), 90);

            List <Point> unwanted = new List <Point>();

            unwanted.Add(new Point("", 0, 1));
            unwanted.Add(new Point("", 1, 0.1));
            unwanted.Add(new Point("", 10, 0.1));
            unwanted.Add(new Point("", -1, -1));
            unwanted.Add(new Point("", -2, -12));
            goalRegions = parser.implied.GetAllAtomicRegionsWithoutPoints(unwanted);

            SetSolutionArea(284.1553891);

            problemName = "Class X Page 1 Col 1 Problem 1";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
        public TwoIsoscelesTriangles(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 0, 4); points.Add(b);
            Point c = new Point("C", 4, 0); points.Add(c);
            Point d = new Point("D", 1, 0); points.Add(d);
            Point e = new Point("E", 1, 3); points.Add(e);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment de = new Segment(d, e); segments.Add(de);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(d);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(b);
            pts.Add(e);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ab, (Segment)parser.Get(new Segment(a, c))));
            given.Add(new RightAngle(b, a, c));
            given.Add(new RightAngle(e, d, c));

            known.AddSegmentLength(ab, 4);
            known.AddSegmentLength((Segment)parser.Get(new Segment(c, d)), 3);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 0.5, 1));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(3.5);

            problemName = "ACT Practice Problem 2";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #37
0
        public IPage120Problem8(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Overlapping Right Triangles";


            Point a = new Point("A", 0, 3); points.Add(a);
            Point m = new Point("M", 2, 1.5); points.Add(m);
            Point b = new Point("B", 4, 3); points.Add(b);
            Point c = new Point("C", 4, 0); points.Add(c);
            Point d = new Point("D", 0, 0); points.Add(d);

            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment cd = new Segment(c, d); segments.Add(cd);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(m);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(b);
            pts.Add(m);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            //   given.Add(new Midpoint(m, (Segment)parser.Get(new Segment(a, c))));
            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, m)), (Segment)parser.Get(new Segment(m, c))));
            given.Add(new Midpoint((InMiddle)parser.Get(new InMiddle(m, (Segment)parser.Get(new Segment(b, d))))));
            given.Add(new RightAngle((Angle)parser.Get(new Angle(b, c, d))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(b, m, c), new Triangle(d, m, a)));
            goals.Add(new Strengthened((Angle)parser.Get(new Angle(a, d, c)), new RightAngle((Angle)parser.Get(new Angle(a, d, c)))));
            goals.Add(new GeometricCongruentTriangles(new Triangle(a, d, c), new Triangle(b, c, d)));

            Multiplication product = new Multiplication(new NumericValue(2), (Segment)parser.Get(new Segment(c, m)));

            goals.Add(new GeometricSegmentEquation(product, (Segment)parser.Get(new Segment(b, d))));
        }
Beispiel #38
0
        public WpfkProb6(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 100, 0); points.Add(b);
            Point c = new Point("C", 50, 0); points.Add(c);
            Point d = new Point("D", 0, 40); points.Add(d);
            Point e = new Point("E", 100, 40); points.Add(e);

            Segment ad = new Segment(a, d); segments.Add(ad);
            Segment de = new Segment(d, e); segments.Add(de);
            Segment eb = new Segment(e, b); segments.Add(eb);
            Segment dc = new Segment(d, c); segments.Add(dc);

            List <Point> pnts = new List <Point>();

            pnts.Add(a);
            pnts.Add(c);
            pnts.Add(b);
            collinear.Add(new Collinear(pnts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(ad, eb, de, (Segment)parser.Get(new Segment(a, b))));

            given.Add(new Strengthened(quad, new Rectangle(quad)));
            Intersection inter = (Intersection)parser.Get(new Intersection(c, (Segment)parser.Get(new Segment(a, b)), dc));

            given.Add(new SegmentBisector(inter, dc));

            known.AddSegmentLength(eb, 40);
            known.AddSegmentLength((Segment)parser.Get(new Segment(a, b)), 100);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 1, 10));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(1000);

            problemName = "Word Problems For Kids - Grade 11 Prob 6";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #39
0
        public Page7Prob25(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point o = new Point("O", 0, 0); points.Add(o);
            Point a = new Point("A", 0, -3); points.Add(a);
            Point b = new Point("B", 0, 3); points.Add(b);
            Point c = new Point("C", 15, 3); points.Add(c);

            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment ca = new Segment(c, a); segments.Add(ca);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(o);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(o, 3));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(a, b)), 6);
            known.AddSegmentLength(bc, 15);

            Angle angle = (Angle)parser.Get(new Angle(a, b, c));

            given.Add(new Strengthened(angle, new RightAngle(angle)));


            List <Point> unwanted = new List <Point>();

            unwanted.Add(new Point("", -2, 0));
            unwanted.Add(new Point("", 2.068, -2.173));
            goalRegions = parser.implied.GetAllAtomicRegionsWithoutPoints(unwanted);

            SetSolutionArea(45);


            problemName = "McDougall Page 7 Problem 25";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #40
0
        public Page144ClassroomExercise04(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 144 Classroom Ex 4";


            Point d = new Point("D", 0, 12); points.Add(d);
            Point c = new Point("C", 9, 0); points.Add(c);
            Point p = new Point("P", 9, 12); points.Add(p);
            Point e = new Point("E", 14, 12); points.Add(e);
            Point q = new Point("Q", 19, 12); points.Add(q);
            Point g = new Point("G", 19, 24); points.Add(g);
            Point f = new Point("F", 28, 12); points.Add(f);

            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment cp = new Segment(c, p); segments.Add(cp);
            Segment gq = new Segment(g, q); segments.Add(gq);
            Segment fg = new Segment(f, g); segments.Add(fg);

            List <Point> pts = new List <Point>();

            pts.Add(c);
            pts.Add(e);
            pts.Add(g);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(d);
            pts.Add(p);
            pts.Add(e);
            pts.Add(q);
            pts.Add(f);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(cd, fg));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(c, e)), (Segment)parser.Get(new Segment(e, g))));
            given.Add(new RightAngle(c, p, e));
            given.Add(new RightAngle(e, q, g));

            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(c, d, p)), (Angle)parser.Get(new Angle(q, f, g))));
        }
Beispiel #41
0
        public Page6Row3Prob32b(bool onoff, bool complete)
            : base(onoff, complete)
        {
            double x = 8 * System.Math.Cos(36 * System.Math.PI / 180);
            double y = 8 * System.Math.Sin(36 * System.Math.PI / 180);
            Point  r = new Point("R", -x, y); points.Add(r);
            Point  p = new Point("P", 0, 0); points.Add(p);
            Point  s = new Point("S", x, y); points.Add(s);
            Point  q = new Point("Q", 0, -4); points.Add(q);

            Segment rp = new Segment(r, p); segments.Add(rp);
            Segment ps = new Segment(p, s); segments.Add(ps);
            Segment pq = new Segment(p, q); segments.Add(pq);

            Circle outer = new Circle(p, 8);
            Circle inner = new Circle(q, 4);

            circles.Add(outer);
            circles.Add(inner);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            MinorArc m = (MinorArc)parser.Get(new MinorArc(outer, r, s));

            known.AddSegmentLength(pq, 4);
            known.AddArcMeasureDegree(m, 108);

            given.Add(new GeometricArcEquation(m, new NumericValue(108)));

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", -6, 0));
            wanted.Add(new Point("", -2, 0));
            wanted.Add(new Point("", 2, 0));
            wanted.Add(new Point("", 6, 0));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(90.47786842);

            problemName = "McDougall Page 6 Row 3 Problem 32b";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #42
0
        public Page4Prob7(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 8, 0); points.Add(b);
            Point c = new Point("C", 8, -8); points.Add(c);
            Point d = new Point("D", 0, -8); points.Add(d);
            Point o = new Point("O", 4, -4); points.Add(o);

            Point x = new Point("X", 4, 0); points.Add(x);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment ad = new Segment(a, d); segments.Add(ad);

            Segment ox = new Segment(o, x); segments.Add(ox);

            circles.Add(new Circle(o, 4.0));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(ad, bc, ab, cd));

            given.Add(new Strengthened(quad, new Square(quad)));

            known.AddSegmentLength(ab, 8);
            known.AddSegmentLength(ox, 4);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 7.9, -0.1));
            wanted.Add(new Point("", 0.1, -0.1));
            wanted.Add(new Point("", 7.9, -7.9));
            wanted.Add(new Point("", 0.1, -7.9));

            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(64 - 16 * System.Math.PI);

            problemName = "Jurgensen Page 4 Problem 7";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #43
0
        public Page8Prob18(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point a = new Point("A", -5, 0); points.Add(a);
            Point b = new Point("B", -2.5, 2.5 * Math.Sqrt(3)); points.Add(b);
            Point c = new Point("C", 5, 0); points.Add(c);
            //Point d = new Point("D", 0, -5); points.Add(d);

            Point o = new Point("O", 0, 0); points.Add(o);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bc = new Segment(b, c); segments.Add(bc);
            //Segment ad = new Segment(a, d); segments.Add(ad);

            List <Point> pnts = new List <Point>();

            pnts.Add(a);
            pnts.Add(o);
            pnts.Add(c);
            collinear.Add(new Collinear(pnts));

            Circle circle = new Circle(o, 5);

            circles.Add(circle);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength(ab, 5);
            known.AddAngleMeasureDegree((Angle)parser.Get(new Angle(a, c, b)), 30);

            List <Point> unwanted = new List <Point>();

            unwanted.Add(new Point("", -2, 1));
            unwanted.Add(new Point("", -0.5, 0.5));
            unwanted.Add(new Point("", 1, 1));
            goalRegions = parser.implied.GetAllAtomicRegionsWithoutPoints(unwanted);

            SetSolutionArea((25) * Math.PI - (0.5 * 5 * Math.Sqrt(75)));

            problemName = "Glencoe Page 8 Problem 18";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #44
0
        public Page226Problem41(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 226 Problem 41";

            Point a = new Point("A", -2, 0); points.Add(a);
            Point b = new Point("B", 8, 0); points.Add(b);
            Point c = new Point("C", -6, -4); points.Add(c);
            Point d = new Point("D", 9, -2); points.Add(d);

            Point q = new Point("Q", 3, 2); points.Add(q);
            Point r = new Point("R", 0, 0); points.Add(r);
            Point s = new Point("S", 6, 0); points.Add(s);

            Segment qr = new Segment(q, r); segments.Add(qr);
            Segment qs = new Segment(q, s); segments.Add(qs);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(r);
            pts.Add(s);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(c);
            pts.Add(r);
            pts.Add(q);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(d);
            pts.Add(s);
            pts.Add(q);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, r, q)), (Angle)parser.Get(new Angle(b, s, q))));

            goals.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(q, r)), (Segment)parser.Get(new Segment(q, s))));
        }
Beispiel #45
0
        public Page145Problem03(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 145 Problem 3";


            Point g = new Point("G", 0, 10); points.Add(g);
            Point r = new Point("R", 1, 12); points.Add(r);
            Point j = new Point("J", 1, 10); points.Add(j);
            Point a = new Point("A", 3, 10); points.Add(a);
            Point k = new Point("K", 5, 10); points.Add(k);
            Point n = new Point("N", 5, 8); points.Add(n);
            Point t = new Point("T", 6, 10); points.Add(t);

            Segment gr = new Segment(g, r); segments.Add(gr);
            Segment jr = new Segment(j, r); segments.Add(jr);
            Segment kn = new Segment(k, n); segments.Add(kn);
            Segment nt = new Segment(n, t); segments.Add(nt);

            List <Point> pts = new List <Point>();

            pts.Add(g);
            pts.Add(j);
            pts.Add(a);
            pts.Add(k);
            pts.Add(t);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(r);
            pts.Add(a);
            pts.Add(n);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(g, j)), (Segment)parser.Get(new Segment(k, t))));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, r)), (Segment)parser.Get(new Segment(a, n))));
            given.Add(new RightAngle(r, j, a));
            given.Add(new RightAngle(n, k, a));

            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(j, g, r)), (Angle)parser.Get(new Angle(n, t, k))));
        }
Beispiel #46
0
        public Page5Row3Prob4(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 5, 4); points.Add(b);
            Point c = new Point("C", 13, 0); points.Add(c);
            Point d = new Point("D", 5, -4); points.Add(d);
            Point o = new Point("O", 5, 0); points.Add(o);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment cd = new Segment(c, d); segments.Add(cd);
            Segment ad = new Segment(a, d); segments.Add(ad);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(o);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(b);
            pts.Add(o);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(ab, ad));
            given.Add(new GeometricCongruentSegments(bc, cd));

            known.AddSegmentLength((Segment)parser.Get(new Segment(o, a)), 5);
            known.AddSegmentLength((Segment)parser.Get(new Segment(o, d)), 4);
            known.AddSegmentLength((Segment)parser.Get(new Segment(o, c)), 8);

            goalRegions = parser.implied.GetAllAtomicRegions();

            SetSolutionArea(52);

            problemName = "McDougall Page 5 Row 3 Problem 4";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #47
0
        public TvPage4Prob38(bool onoff, bool complete)
            : base(onoff, complete)
        {
            Point o = new Point("O", 0, 0); points.Add(o);
            Point p = new Point("P", -2.3, 0); points.Add(p);
            Point q = new Point("Q", 0, 1); points.Add(q);
            Point r = new Point("R", 0, 2.3); points.Add(r);

            Segment po = new Segment(p, o); segments.Add(po);
            Segment pq = new Segment(p, q); segments.Add(pq);

            List <Point> pnts = new List <Point>();

            pnts.Add(r);
            pnts.Add(q);
            pnts.Add(o);
            collinear.Add(new Collinear(pnts));

            Circle circle = new Circle(o, 2.3);

            circles.Add(circle);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(o, q)), 1);
            known.AddSegmentLength(po, 2.3);

            Angle a1 = (Angle)parser.Get(new Angle(p, o, r));

            given.Add(new Strengthened(a1, new RightAngle(a1)));

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", -2, 0.4));
            wanted.Add(new Point("", -0.5, 1.5));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea((5.29 / 4.0) * System.Math.PI - 1.15);

            problemName = "Tutor Vista Page 4 Problem 38";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #48
0
        public Page160Problem42(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 160 Problem 42";


            Point a = new Point("A", -3, -1); points.Add(a);
            Point b = new Point("B", 0, 0); points.Add(b);
            Point c = new Point("C", 6, 2); points.Add(c);
            Point d = new Point("D", 1, -3); points.Add(d);
            Point x = new Point("X", -5, 5); points.Add(x);
            Point y = new Point("Y", -2, 6); points.Add(y);
            Point z = new Point("Z", 1, 7); points.Add(z);
            Point q = new Point("Q", -3, 9); points.Add(q);

            List <Point> pts = new List <Point>();

            pts.Add(q);
            pts.Add(y);
            pts.Add(b);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(x);
            pts.Add(y);
            pts.Add(z);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(a);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricParallel((Segment)parser.Get(new Segment(a, c)), (Segment)parser.Get(new Segment(x, z))));
            given.Add(new Perpendicular(parser.GetIntersection((Segment)parser.Get(new Segment(q, d)), (Segment)parser.Get(new Segment(x, z)))));

            goals.Add(new Supplementary((Angle)parser.Get(new Angle(c, b, y)), (Angle)parser.Get(new Angle(z, y, b))));
        }
Beispiel #49
0
        public Page1Col2Prob4(bool onoff, bool complete) : base(onoff, complete)
        {
            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 14, 0); points.Add(b);

            Point x = new Point("X", 1.75, 0);   points.Add(x);
            Point y = new Point("Y", 7, 0);   points.Add(y);
            Point z = new Point("Z", 12.25, 0); points.Add(z);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(x);
            pts.Add(y);
            pts.Add(z);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(x, 1.75));
            circles.Add(new Circle(y, 3.5));
            circles.Add(new Circle(z, 1.75));
            circles.Add(new Circle(y, 7));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength((Segment)parser.Get(new Segment(a, b)), 14);
            known.AddSegmentLength((Segment)parser.Get(new Segment(a, x)), 1.75);
            known.AddSegmentLength((Segment)parser.Get(new Segment(b, z)), 1.75);

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", 7, 1));
            wanted.Add(new Point("", 7, -1));
            wanted.Add(new Point("", 7, 6));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(86.59014751);

            problemName = "Class X Page 1 Column 2 Problem 4";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #50
0
        public Page168Problem37(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 168 Problem 37";


            Point a = new Point("A", 1, 1); points.Add(a);
            Point b = new Point("B", 6, 1); points.Add(b);
            Point c = new Point("C", 10, 1); points.Add(c);
            Point d = new Point("D", 1, 3); points.Add(d);
            Point e = new Point("E", 2, 3); points.Add(e);
            Point f = new Point("F", 10, 3); points.Add(f);
            Point g = new Point("G", 0, 4); points.Add(g);
            Point h = new Point("H", 8, 0); points.Add(h);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(d);
            pts.Add(e);
            pts.Add(f);
            collinear.Add(new Collinear(pts));

            List <Point> pts3 = new List <Point>();

            pts.Add(g);
            pts.Add(e);
            pts.Add(b);
            pts.Add(h);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new Supplementary((Angle)parser.Get(new Angle(d, e, b)), (Angle)parser.Get(new Angle(a, b, e))));

            goals.Add(new GeometricParallel((Segment)parser.Get(new Segment(a, c)), (Segment)parser.Get(new Segment(d, f))));
        }
        public Page60Theorem22Extended(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 60 Theorem 22 Extended";


            Point a = new Point("A", -1, 3); points.Add(a);
            Point b = new Point("B", 4, 3);  points.Add(b);
            Point c = new Point("C", 0, 0);  points.Add(c);
            Point d = new Point("D", 5, 0);  points.Add(d);

            Point x = new Point("X", 2, 3);  points.Add(x);
            Point y = new Point("Y", 1, 0); points.Add(y);
            Point p = new Point("P", 3, 6); points.Add(p);
            Point q = new Point("Q", 0, -3); points.Add(q);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(x);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(c);
            pts.Add(y);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(p);
            pts.Add(x);
            pts.Add(y);
            pts.Add(q);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricParallel((Segment)parser.Get(new Segment(a, b)), (Segment)parser.Get(new Segment(c, d))));

            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, x, y)), (Angle)parser.Get(new Angle(x, y, d))));
        }
Beispiel #52
0
        public Page6Row1Prob26(bool onoff, bool complete)
            : base(onoff, complete)
        {
            double r = 5 / System.Math.Sqrt(2);
            Point  a = new Point("A", -r, 0); points.Add(a);
            Point  b = new Point("B", 0, r); points.Add(b);
            Point  c = new Point("C", r, 0); points.Add(c);
            Point  o = new Point("O", 0, 0); points.Add(o);

            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bo = new Segment(b, o); segments.Add(bo);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(o);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            circles.Add(new Circle(o, r));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            known.AddSegmentLength(bc, 5);
            Angle angle = (Angle)parser.Get(new Angle(b, o, a));

            given.Add(new Strengthened(angle, new RightAngle(angle)));

            List <Point> wanted = new List <Point>();

            wanted.Add(new Point("", -2, 2));
            wanted.Add(new Point("", 2, 2));
            wanted.Add(new Point("", 0, -2));
            goalRegions = parser.implied.GetAtomicRegionsByPoints(wanted);

            SetSolutionArea(12.5 * System.Math.PI - 12.5);

            problemName = "McDougall Page 6 Row 1 Problem 26";
            GeometryTutorLib.EngineUIBridge.HardCodedProblemsToUI.AddProblem(problemName, points, circles, segments);
        }
Beispiel #53
0
        public Page41Problem15(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 41 Problem 15";


            Point a = new Point("A", 1, -1); points.Add(a);
            Point b = new Point("B", 3, 1); points.Add(b);
            Point c = new Point("C", 5, 1); points.Add(c);
            Point d = new Point("D", 7, -1); points.Add(d);

            Point w = new Point("W", 0, 0); points.Add(w);
            Point x = new Point("X", 2, 0); points.Add(x);
            Point y = new Point("Y", 6, 0); points.Add(y);
            Point z = new Point("Z", 11, 0); points.Add(z);

            List <Point> pts = new List <Point>();

            pts.Add(w);
            pts.Add(x);
            pts.Add(y);
            pts.Add(z);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(a);
            pts.Add(x);
            pts.Add(b);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(c);
            pts.Add(y);
            pts.Add(d);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(b, x, y)), (Angle)parser.Get(new Angle(c, y, x))));

            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, x, w)), (Angle)parser.Get(new Angle(d, y, z))));
        }
Beispiel #54
0
        public Page48Problem23To31(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 48 Problem 23-31";


            Point a = new Point("A", 0, 5); points.Add(a);
            Point b = new Point("B", 2, 4); points.Add(b);
            Point c = new Point("C", 4, 3); points.Add(c);
            Point m = new Point("M", 3, 6); points.Add(m);

            Point x = new Point("X", -2, 1); points.Add(x);
            Point y = new Point("Y", 0, 0); points.Add(y);
            Point z = new Point("Z", 2, -1); points.Add(z);
            Point q = new Point("Q", -1, -2); points.Add(q);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(b);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(x);
            pts.Add(y);
            pts.Add(z);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(q);
            pts.Add(y);
            pts.Add(b);
            pts.Add(m);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);
            given.Add(new Perpendicular(parser.GetIntersection(new Segment(m, q), new Segment(a, c))));
            given.Add(new GeometricParallel((Segment)parser.Get(new Segment(a, c)), (Segment)parser.Get(new Segment(x, z))));

            goals.Add(new Perpendicular(parser.GetIntersection(new Segment(m, q), new Segment(x, z))));
        }
Beispiel #55
0
        public Page25Problem8(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 25 Problem 8";


            Point p = new Point("P", -5, 5); points.Add(p);
            Point q = new Point("Q", -4, 4); points.Add(q);
            Point r = new Point("R", 0, 0); points.Add(r);
            Point s = new Point("S", 4, 4); points.Add(s);
            Point t = new Point("T", 6, 6); points.Add(t);
            Point u = new Point("U", 0, 4); points.Add(u);

            Segment ur = new Segment(u, r); segments.Add(ur);

            List <Point> pts = new List <Point>();

            pts.Add(p);
            pts.Add(q);
            pts.Add(r);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(q);
            pts.Add(u);
            pts.Add(s);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(r);
            pts.Add(s);
            pts.Add(t);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(p, q, u)), (Angle)parser.Get(new Angle(t, s, u))));
            given.Add(new RightAngle((Angle)parser.Get(new Angle(q, u, r))));
            given.Add(new RightAngle((Angle)parser.Get(new Angle(s, u, r))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(r, u, q), new Triangle(r, u, s)));
        }
Beispiel #56
0
        //Demonstrates: Measure of an angle formed by two chords that intersect inside a circle is equal to half the sum of the measures
        //of the intercepted arcs
        //To see use of theorem, need to turn off VERTICAL_ANGLES and RELATIONS_OF_CONGRUENT_ANGLES_ARE_CONGRUENT in JustificationSwitch

        public Test07(bool onoff, bool complete)
            : base(onoff, complete)
        {
            //Circle
            Point  o       = new Point("O", 0, 0); points.Add(o);
            Circle circleO = new Circle(o, 5.0);

            circles.Add(circleO);

            //Points for chord ab
            Point a = new Point("A", -3, 4); points.Add(a);
            Point b = new Point("B", 3, -4); points.Add(b);

            //Points for chord cd
            Point c = new Point("C", -3, -4); points.Add(c);
            Point d = new Point("D", 1, System.Math.Sqrt(24)); points.Add(d);

            //Find intersection point of ab and cd
            Segment ab    = new Segment(a, b);
            Segment cd    = new Segment(c, d);
            Point   inter = ab.FindIntersection(cd);
            Point   z     = new Point("Z", inter.X, inter.Y); points.Add(z);

            List <Point> pnts = new List <Point>();

            pnts.Add(a);
            pnts.Add(z);
            pnts.Add(b);
            collinear.Add(new Collinear(pnts));

            pnts = new List <Point>();
            pnts.Add(c);
            pnts.Add(z);
            pnts.Add(d);
            collinear.Add(new Collinear(pnts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, z, d)), (Angle)parser.Get(new Angle(c, z, b))));
            goals.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, z, c)), (Angle)parser.Get(new Angle(b, z, d))));
        }
Beispiel #57
0
        public Page229Problem07(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 229 Problem 07";


            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 6, 0); points.Add(b);
            Point c = new Point("C", 6, 8); points.Add(c);
            Point p = new Point("P", 0, 10); points.Add(p);
            Point k = new Point("K", 9, 10); points.Add(k);
            Point n = new Point("N", 9, 12); points.Add(n);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment bc = new Segment(b, c); segments.Add(bc);
            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment kp = new Segment(k, p); segments.Add(kp);
            Segment kn = new Segment(k, n); segments.Add(kn);
            Segment pn = new Segment(p, n); segments.Add(pn);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);
        }
        // Geometry; Page 172 Problem 19
        // Demonstrates: Definition of rhombus: If two consecutive sides of a parallelogram are congruent, then the parallelogram is a rhombus.

        public Page170ClassroomExercise02(bool onoff, bool complete) : base(onoff, complete)
        {
            Point n = new Point("N", 0, 0); points.Add(n);
            Point g = new Point("G", 5, 0); points.Add(g);
            Point c = new Point("C", 3, 4); points.Add(c);
            Point t = new Point("T", 8, 4); points.Add(t);

            Segment nc = new Segment(n, c); segments.Add(nc);
            Segment ng = new Segment(n, g); segments.Add(ng);
            Segment gt = new Segment(g, t); segments.Add(gt);
            Segment ct = new Segment(c, t); segments.Add(ct);

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            Quadrilateral quad = (Quadrilateral)parser.Get(new Quadrilateral(nc, gt, ct, ng));

            given.Add(new Strengthened(quad, new Parallelogram(quad)));
            given.Add(new GeometricCongruentSegments(nc, ct));

            goals.Add(new Strengthened(quad, new Rhombus(quad)));
        }
        public Page74Problem14To16(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Page 74 Problem 14-16";


            Point a = new Point("A", 0, 0); points.Add(a);
            Point b = new Point("B", 5, 6); points.Add(b);
            Point c = new Point("C", 10, 0); points.Add(c);
            Point d = new Point("D", 6, 0); points.Add(d);
            Point e = new Point("E", 5, 0); points.Add(e);
            Point f = new Point("F", 4, 0); points.Add(f);

            Segment ba = new Segment(b, a); segments.Add(ba);
            Segment bf = new Segment(b, f); segments.Add(bf);
            Segment be = new Segment(b, e); segments.Add(be);
            Segment bd = new Segment(b, d); segments.Add(bd);
            Segment bc = new Segment(b, c); segments.Add(bc);

            List <Point> pts = new List <Point>();

            pts.Add(a);
            pts.Add(f);
            pts.Add(e);
            pts.Add(d);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new GeometricCongruentSegments(bf, bd));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(a, f)), (Segment)parser.Get(new Segment(d, c))));
            given.Add(new GeometricCongruentSegments((Segment)parser.Get(new Segment(f, e)), (Segment)parser.Get(new Segment(e, d))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(f, a, b)), (Angle)parser.Get(new Angle(a, c, b))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(e, f, b)), (Angle)parser.Get(new Angle(e, d, b))));
            given.Add(new GeometricCongruentAngles((Angle)parser.Get(new Angle(a, b, f)), (Angle)parser.Get(new Angle(c, b, d))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(b, e, f), new Triangle(b, e, d)));
            goals.Add(new GeometricCongruentTriangles(new Triangle(a, d, b), new Triangle(c, f, b)));
            goals.Add(new GeometricCongruentTriangles(new Triangle(a, f, b), new Triangle(c, d, b)));
        }
Beispiel #60
0
        public IPage128Problem01(bool onoff, bool complete) : base(onoff, complete)
        {
            problemName = "Book I Page 128 Problem 1";

            Point a = new Point("A", 2, 7); points.Add(a);
            Point b = new Point("B", 0, 0); points.Add(b);
            Point c = new Point("C", 4, 0); points.Add(c);
            Point d = new Point("D", 2, 3); points.Add(d);
            Point p = new Point("P", 2, 0); points.Add(p);

            Segment ab = new Segment(a, b); segments.Add(ab);
            Segment ac = new Segment(a, c); segments.Add(ac);
            Segment bd = new Segment(b, d); segments.Add(bd);
            Segment cd = new Segment(c, d); segments.Add(cd);

            List <Point> pts = new List <Point>();

            pts.Add(b);
            pts.Add(p);
            pts.Add(c);
            collinear.Add(new Collinear(pts));

            pts = new List <Point>();
            pts.Add(a);
            pts.Add(d);
            pts.Add(p);
            collinear.Add(new Collinear(pts));

            parser = new GeometryTutorLib.TutorParser.HardCodedParserMain(points, collinear, segments, circles, onoff);

            given.Add(new IsoscelesTriangle((Triangle)parser.Get(new Triangle(a, b, c))));
            given.Add(new IsoscelesTriangle((Triangle)parser.Get(new Triangle(d, b, c))));

            goals.Add(new GeometricCongruentTriangles(new Triangle(a, b, d), new Triangle(a, c, d)));
            goals.Add(new GeometricCongruentTriangles(new Triangle(a, b, p), new Triangle(a, c, p)));
            goals.Add(new AngleBisector((Angle)parser.Get(new Angle(b, a, c)), (Segment)parser.Get(new Segment(a, p))));
            goals.Add(new AngleBisector((Angle)parser.Get(new Angle(b, d, c)), (Segment)parser.Get(new Segment(a, p))));
            goals.Add(new PerpendicularBisector(parser.GetIntersection(new Segment(a, p), new Segment(b, c)),
                                                (Segment)parser.Get(new Segment(a, p))));
        }