private void ranGenBtn_Click(object sender, RoutedEventArgs e) //Генерация случайных точек
        {
            button2_Click(sender, e);                                  //Удаляем все точки
            Random rnd = new Random();

            for (int i = 0; i < 30; ++i)                                                                                         //генерируем 30 штук
            {
                CPoint p = new CPoint(Counter++, rnd.Next(10, (int)Canvas1.Width - 10), rnd.Next(10, (int)Canvas1.Height - 10)); //Создаем точку со случайными координатами
                AddPoint(p);                                                                                                     //Добавляем её
            }
            messageLabel.Content = "Случайные точки\n сгенерированы.";
        }
        private void Canvas1_MouseDown(object sender, MouseButtonEventArgs e)
        {
            double x = e.GetPosition(Canvas1).X;                                                                //GetPosition(Canvas1).X - координата Х относительно Canvas
            double y = e.GetPosition(Canvas1).Y;                                                                //координата Y относительно канваса

            if (e.LeftButton == MouseButtonState.Pressed)                                                       //Если нажата ЛКМ
            {
                var point = new CPoint(Counter++, x, y);                                                        //Создаем новую точку.
                AddPoint(point);                                                                                //Добавляем точку
            }
            else if (e.RightButton == MouseButtonState.Pressed)                                                 //Если нажата ПКМ
            {
                foreach (var p in Points)
                {
                    if (p.isHitted(x, y))
                    {
                        RemovePoint(p);
                        break;
                    }
                }
            }
        }
Пример #3
0
 public static double rotate(CPoint A, CPoint B, CPoint C)
 {
     //та же функция, только принимает точки как аргументы
     //return rotate(A.X,A.Y,B.X,B.Y,C.X,C.Y);
     return((B.X - A.X) * (C.Y - B.Y) - (B.Y - A.Y) * (C.X - B.X));
 }
Пример #4
0
 public Table(CPoint p, double x, double y)
 {
     _point = p;
     X      = (int)x;
     Y      = (int)y;
 }
Пример #5
0
 public Table(CPoint p, int x, int y)
 {
     _point = p;
     X      = x;
     Y      = y;
 }
 private void RemovePoint(CPoint p)                  //Удаляем точку
 {
     Canvas1.Children.Remove(p.Elp);                 //Удаляем эллипс с канваса
     Canvas1.Children.Remove(p.Lbl);                 //Удаляем подпись с канваса
     Points.Remove(p);                               //Удаляем точку из списка
 }
        int Counter = 1;                                    //Нумерация точек

        private void AddPoint(CPoint p)                     //Добавляем точку
        {
            Points.Add(p);                                  //Добалвяем точку в список
            Canvas1.Children.Add(p.Elp);                    //Добавляем эллипс на канвас
            Canvas1.Children.Add(p.Lbl);                    //Добавляем подпись на канвас
        }