Exemple #1
0
        public void TestMethod1()
        {
            MyPoint a = new MyPoint(0, 0);
            MyPoint b = new MyPoint(4, 6);
            MyPoint c = new MyPoint(4, 0);

            MyPoint in_point = new MyPoint(3, 2);
            MyPoint ex_point = new MyPoint(8, 8);

            MyTriangle triangle = new MyTriangle(a,b,c);

            Assert.AreEqual(true, triangle.MyPointBelong(in_point), "internal point checking");
            Assert.AreEqual(false, triangle.MyPointBelong(ex_point), "external point checking");
        }
Exemple #2
0
        public bool MyPointBelong(MyPoint D)
        {
            bool result = false;
            // Найдем 3 треугольника, который получатся при добавлении точки.
            MyTriangle first = new MyTriangle(A, B, D);
            MyTriangle second = new MyTriangle(B, C, D);
            MyTriangle third = new MyTriangle(A, C, D);

            // А теперь немного заморочек со случаем, когда 3 точки лежат на 1 линии, и это уже фиговый треугольник.
            if (!first.is_correct() || !second.is_correct() || !third.is_correct())
            {
                if (!first.is_correct() && !D.is_between(A, B))
                    return false;
                if (!first.is_correct() && D.is_between(A, B))
                    return true;
                if (!second.is_correct() && !D.is_between(D, C))
                    return false;
                if (!second.is_correct() && D.is_between(D, C))
                    return true;
                if (!third.is_correct() && !D.is_between(A, C))
                    return false;
                if (!third.is_correct() && D.is_between(A, C))
                    return true;
            }

            double s1 = square;
            double s2 = first.square + second.square + third.square;
            double dif = s1 - s2;
            if (dif < 0)
                dif *= -1;
            // Ну если сумма площадей равна, то все хорошо
            if (dif < coefficient_error)
            {
                result = true;
            }

            return result;
        }
Exemple #3
0
        private void button_belong_Click(object sender, EventArgs e)
        {
            List<MyPoint> points = new List<MyPoint>();
            string query = textBox_addtr.Text;
            foreach (string xy in query.Split(';'))
            {
                int x = Convert.ToInt32(xy.Split(',')[0]);
                int y = Convert.ToInt32(xy.Split(',')[1]);
                points.Add(new MyPoint(x, y));
            }
            MyTriangle triangle = new MyTriangle(points[0], points[1], points[2]);

            int point_x = Convert.ToInt32(textBox_addp_x.Text);
            int point_y = Convert.ToInt32(textBox_addp_y.Text);
            MyPoint suspect = new MyPoint(point_x, point_y);
            if (triangle.MyPointBelong(suspect))
            {
                MessageBox.Show("Belongs!!!");
            }
            else
            {
                MessageBox.Show("Not Belongs!!!");
            }
        }