Задача на геометрическое построение - C#

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

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

Дан отрезок а, длиной равной сумме длин стороны некоторого квадрата и его диагонали. Постройте квадрат по этим данным так, чтобы его вершина А была расположена в начале координат, а сам квадрат полностью располагался в I-ом квадранте. Спецификации ввода (файл Inlet.in) Xa1 Ya1 Xa2 Ya2 Спецификации вывода (файл Outlet.out) XA YA XB YB XC YC XD YD

Решение задачи: «Задача на геометрическое построение»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.     //Чтение строк из файла
  4.     string[] text = File.ReadLines("Inlet.in").ToArray();
  5.     //Разбиваем по пробелу первую строку
  6.     string[] line = text[0].Split();
  7.     //Координаты первой точки
  8.     var pt1 = new PointF(
  9.         float.Parse(line[0], CultureInfo.InvariantCulture), float.Parse(line[1], CultureInfo.InvariantCulture));
  10.     //Разбиваем по пробелу вторую строку
  11.     line = text[1].Split();
  12.     //Координаты второй точки
  13.     var pt2 = new PointF(
  14.         float.Parse(line[0], CultureInfo.InvariantCulture), float.Parse(line[1], CultureInfo.InvariantCulture));
  15.     //Заданный вектор
  16.     var v = new PointF(pt2.X - pt1.X, pt2.Y - pt1.Y);
  17.     //Длина вектора
  18.     var len = Math.Sqrt(v.X * v.X + v.Y * v.Y);
  19.     //Вычисляем длину стороны квадрата
  20.     var side = (float) (len / (4 + Math.Sqrt(2)));
  21.     //Вершины квадрата
  22.     PointF[] square =
  23.     {
  24.         new PointF(),
  25.         new PointF(side, 0),
  26.         new PointF(side, side),
  27.         new PointF(0, side)
  28.     };
  29.     //Записываем результат
  30.     using (var writer = new StreamWriter("Outlet.out"))
  31.     {
  32.         foreach (var pointF in square)
  33.             writer.WriteLine(
  34.                 "{0} {1}", pointF.X.ToString("f2", CultureInfo.InvariantCulture),
  35.                 pointF.Y.ToString("f2", CultureInfo.InvariantCulture));
  36.     }
  37.     //Выводим файл на экран
  38.     Console.WriteLine("Исходные данные (Inlet.in):");
  39.     Console.WriteLine(File.ReadAllText("Inlet.in"));
  40.     Console.WriteLine("Результат (Outlet.out):");
  41.     Console.WriteLine(File.ReadAllText("Outlet.out"));
  42. }

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


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

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

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

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

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

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