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; } } } }
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)); }
public Table(CPoint p, double x, double y) { _point = p; X = (int)x; Y = (int)y; }
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); //Добавляем подпись на канвас }