Проверить является ли фигура квадратом по координатам 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");
        }
    }
}

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы