Проверить является ли фигура квадратом по координатам 4 точек - C#

Узнай цену своей работы

Формулировка задачи:

Даны координаты 4рех точек проверить является ли фигура квадратом. Все случаи учитывать

Решение задачи: «Проверить является ли фигура квадратом по координатам 4 точек»

textual
Листинг программы
  1. using System.IO;
  2. using System;
  3.  
  4. namespace IsSquare
  5. {
  6.     struct Point
  7.     {
  8.         double x;
  9.         double y;
  10.        
  11.         public Point( double x, double y)
  12.         {
  13.             this.x = x;
  14.             this.y = y;
  15.         }
  16.        
  17.         public double dist(Point P)
  18.         {
  19.             return Math.Sqrt((this.x - P.x)*(this.x - P.x) + (this.y - P.y)*(this.y - P.y));
  20.         }
  21.     }
  22.  
  23.     class Program
  24.     {
  25.         public static void Main()
  26.         {
  27.             Point[] P = new Point[4];
  28.            
  29.             //Чтение из консоли сам напишешь. Я так присваиваю.
  30.             P[0] = new Point(0,0);
  31.             P[1] = new Point(5,1);
  32.             P[2] = new Point(-1,5);
  33.             P[3] = new Point(4,6);
  34.            
  35.             //Вычисляем расстояния между всемя точками
  36.             double[] L = new double[6];
  37.             L[0] = P[0].dist(P[1]);
  38.             L[1] = P[0].dist(P[2]);
  39.             L[2] = P[0].dist(P[3]);
  40.             L[3] = P[1].dist(P[2]);
  41.             L[4] = P[1].dist(P[3]);
  42.             L[5] = P[2].dist(P[3]);
  43.            
  44.             //Сортируем массив
  45.             Array.Sort(L);
  46.            
  47.             //Делим расстояния на длину самого короткого из них
  48.             for(int i=5; i>-1; i--)
  49.             {
  50.                 L[i] /= L[0];
  51.             }
  52.            
  53.             //Если массив получился похож на { 1, 1, 1, 1, sqrt(2), sqrt(2) }, то получился квадрат
  54.             if ( (Math.Abs(L[0] - 1) < 1E-8) &&
  55.                  (Math.Abs(L[1] - 1) < 1E-8) &&
  56.                  (Math.Abs(L[2] - 1) < 1E-8) &&
  57.                  (Math.Abs(L[3] - 1) < 1E-8) &&
  58.                  (Math.Abs(L[4] - Math.Sqrt(2)) < 1E-8) &&
  59.                  (Math.Abs(L[5] - Math.Sqrt(2)) < 1E-8)
  60.                ) Console.WriteLine("Yes");
  61.             else
  62.                 Console.WriteLine("No");
  63.         }
  64.     }
  65. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы