Проверить является ли фигура квадратом по координатам 4 точек - C#
Формулировка задачи:
Даны координаты 4рех точек проверить является ли фигура квадратом. Все случаи учитывать
Решение задачи: «Проверить является ли фигура квадратом по координатам 4 точек»
textual
Листинг программы
using System.IO; using System; namespace IsSquare { struct Point { double x; double y; public Point( double x, double y) { this.x = x; this.y = y; } public double dist(Point P) { return Math.Sqrt((this.x - P.x)*(this.x - P.x) + (this.y - P.y)*(this.y - P.y)); } } class Program { public static void Main() { Point[] P = new Point[4]; //Чтение из консоли сам напишешь. Я так присваиваю. P[0] = new Point(0,0); P[1] = new Point(5,1); P[2] = new Point(-1,5); P[3] = new Point(4,6); //Вычисляем расстояния между всемя точками double[] L = new double[6]; L[0] = P[0].dist(P[1]); L[1] = P[0].dist(P[2]); L[2] = P[0].dist(P[3]); L[3] = P[1].dist(P[2]); L[4] = P[1].dist(P[3]); L[5] = P[2].dist(P[3]); //Сортируем массив Array.Sort(L); //Делим расстояния на длину самого короткого из них for(int i=5; i>-1; i--) { L[i] /= L[0]; } //Если массив получился похож на { 1, 1, 1, 1, sqrt(2), sqrt(2) }, то получился квадрат if ( (Math.Abs(L[0] - 1) < 1E-8) && (Math.Abs(L[1] - 1) < 1E-8) && (Math.Abs(L[2] - 1) < 1E-8) && (Math.Abs(L[3] - 1) < 1E-8) && (Math.Abs(L[4] - Math.Sqrt(2)) < 1E-8) && (Math.Abs(L[5] - Math.Sqrt(2)) < 1E-8) ) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д