Перейти к содержанию

Подскажите как найти в С/С++ площадь треугольника по координатам его вершины ?


Рекомендуемые сообщения

Опубликовано

Это все из тех же задач:

Зная координаты вершин треугольника определить принадлежность к ним четвертой точки))

Т.е. если сложить площади 3 треугольников и сравнить их с площадью исходного треугольника то можно получить искомый ответ)) остается только вычислить эти самые площади треугольников, кто нибудь знает как???

Опубликовано

Площадь Треугольника через три точки a(x1,y1), b(x2,y2), c(x3,y3):

S = |x1(y2-y3)+x2(y3-y1)+x3(y1-y2)|/2

вот еще нарыл способ

Вот оччень простая демонстрация без всяких там площадей и сложных вычеслений(которые кстати тоже "отвлекают" сопроц).

IsBelow(x0, y0, x1, y1, x2, y2)-определяет, с какой стороны от прямой находится точка(отдельно употребляется очень редко).

InTriangle(x0, y0, x1, y1, x2, y2, x3, y3)-самый точный и самый быстрый способ определить находится ли точка (х0, у0) в данном треугольнике ((x1,y1), (x2,y2), (x3,y3)).


Return Sgn((x1-x0)*(y1-y2)+(y1-y0)*(x2-x1))
End Function

Function InTriangle(x0, y0, x1, y1, x2, y2, x3, y3)
If IsBelow(x0, y0, x2, y2, x1, y1)*IsBelow(x0, y0, x2, y2, x3, y3)>0 Return 0
If IsBelow(x0, y0, x1, y1, x2, y2)*IsBelow(x0, y0, x1, y1, x3, y3)>0 Return 0
If IsBelow(x0, y0, x3, y3, x2, y2)*IsBelow(x0, y0, x3, y3, x1, y1)>0 Return 0
Return 1
End Function
Function IsBelow(x0, y0, x1, y1, x2, y2)

надеюсь, на плюсы переписать не составит труда

Опубликовано

bula3

Вообще на той олимпиаде мы решали через способ указанный Maru. тоесь смотрим находится ли заданная точка по одну сторону с противоположной вершиной от прямой проведенной через две оставшиеся вершины.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...