Доброго времени суток,есть следующая задача:на плоскости задан треугольник координатами вершин (x1,y1), (x2,y2), (x3,y3) и произвольная точка (x,y). Составить логическую функцию, проверяющую, лежит ли точка внутри треугольника.
До простого решения я сам додумался используя несколько похожих кодов,но получилось без функции.
Вот код без логической функции:
// тп5.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <stdio.h>
#include <locale>
int main()
{
setlocale(LC_ALL, "rus");
double x1, y1, x2, y2, x3, y3, x, y;
printf("Введите координаты вершины A => ");
scanf("%lf%lf", &x1, &y1); // читаем координаты точки A
printf("Введите координаты вершины В => ");
scanf("%lf%lf", &x2, &y2); // читаем координаты точки B
printf("Введите координаты вершины С => ");
scanf("%lf%lf", &x3, &y3); // читаем координаты точки C
printf("Введите координаты проверяемой точки => ");
scanf("%lf%lf", &x, &y); // читаем координаты точки D
printf(
(((x - x1)*(y2 - y1) - (y - y1)*(x2 - x1))*((x3 - x1)*(y2 - y1) - (y3 - y1)*(x2 - x1)) >= 0) &&
(((x - x2)*(y3 - y2) - (y - y2)*(x3 - x2))*((x1 - x2)*(y3 - y2) - (y1 - y2)*(x3 - x2)) >= 0) &&
(((x - x3)*(y1 - y3) - (y - y3)*(x1 - x3))*((x2 - x3)*(y1 - y3) - (y2 - y3)*(x1 - x3)) >= 0) ?
"Точка входит в треугольник \n" : "Точка не входит в треугольник \n");
return 0;
}