Проверить является ли фигура квадратом по координатам 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");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д