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

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

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

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

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

textual
Листинг программы
static void Main(string[] args)
{
    //Чтение строк из файла
    string[] text = File.ReadLines("Inlet.in").ToArray();
    //Разбиваем по пробелу первую строку
    string[] line = text[0].Split();
    //Координаты первой точки
    var pt1 = new PointF(
        float.Parse(line[0], CultureInfo.InvariantCulture), float.Parse(line[1], CultureInfo.InvariantCulture));
    //Разбиваем по пробелу вторую строку
    line = text[1].Split();
    //Координаты второй точки
    var pt2 = new PointF(
        float.Parse(line[0], CultureInfo.InvariantCulture), float.Parse(line[1], CultureInfo.InvariantCulture));
    //Заданный вектор
    var v = new PointF(pt2.X - pt1.X, pt2.Y - pt1.Y);
    //Длина вектора
    var len = Math.Sqrt(v.X * v.X + v.Y * v.Y);
    //Вычисляем длину стороны квадрата
    var side = (float) (len / (4 + Math.Sqrt(2)));
    //Вершины квадрата
    PointF[] square =
    {
        new PointF(),
        new PointF(side, 0),
        new PointF(side, side),
        new PointF(0, side)
    };
    //Записываем результат
    using (var writer = new StreamWriter("Outlet.out"))
    {
        foreach (var pointF in square)
            writer.WriteLine(
                "{0} {1}", pointF.X.ToString("f2", CultureInfo.InvariantCulture),
                pointF.Y.ToString("f2", CultureInfo.InvariantCulture));
    }
    //Выводим файл на экран
    Console.WriteLine("Исходные данные (Inlet.in):");
    Console.WriteLine(File.ReadAllText("Inlet.in"));
    Console.WriteLine("Результат (Outlet.out):");
    Console.WriteLine(File.ReadAllText("Outlet.out"));
}

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


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

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

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