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

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

В четырёх строках находятся пары чисел - координаты точек. Числа в первых трёх строках - это координаты вершин треугольника, в четвёртой строке - координаты тестируемой точки. Координаты точек - целые числа, для любой точки выполняются следующие условия: -10 000 ≤ x, y ≤ 10 000.


textual

Код к задаче: «Задача с треугольником - C#»

using System;
using System.IO;
using System.Globalization;
 
namespace ConsoleAppTest
{
    public struct Point
    {
        public double X { set; get; }
        public double Y { set; get; }
 
        public Point(double x, double y) : this() {
            this.X = x;
            this.Y = y;
        }
    }
 
    class Program
    {
        static double TriangleArea(Point a, Point b, Point c) {
            return Math.Abs((a.X - c.X) * (b.Y - c.Y) + (b.X - c.X) * (c.Y - a.Y));
        }
 
        static Point ParsePoint(string[] lines, int index) {
            string[] spl = lines[index].Split(' ');
            return new Point(Double.Parse(spl[0], NumberStyles.Float),
                Double.Parse(spl[1], NumberStyles.Float));
        }
 
        static void Main() {
            string[] lines = File.ReadAllLines("C:\\triangle.txt");
            if (lines.Length > 3) {
                // треугольник
                Point a = ParsePoint(lines, 0);
                Point b = ParsePoint(lines, 1);
                Point c = ParsePoint(lines, 2);
                // точка
                Point d = ParsePoint(lines, 3);
                //
                if (TriangleArea(a, b, d) + TriangleArea(b, c, d) + TriangleArea(a, d, c)
                    == TriangleArea(a, b, c))
                        Console.WriteLine("Точка внутри треугольника");
                else
                    Console.WriteLine("Точка вне треугольника");
            }
        }
    }
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

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

Источник