bula3 Опубликовано 14 октября, 2010 Жалоба Опубликовано 14 октября, 2010 Это все из тех же задач:Зная координаты вершин треугольника определить принадлежность к ним четвертой точки))Т.е. если сложить площади 3 треугольников и сравнить их с площадью исходного треугольника то можно получить искомый ответ)) остается только вычислить эти самые площади треугольников, кто нибудь знает как???
Maru Опубликовано 14 октября, 2010 Жалоба Опубликовано 14 октября, 2010 Площадь Треугольника через три точки 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 FunctionFunction 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 1End FunctionFunction IsBelow(x0, y0, x1, y1, x2, y2) надеюсь, на плюсы переписать не составит труда
Lakers Опубликовано 14 октября, 2010 Жалоба Опубликовано 14 октября, 2010 bula3Вообще на той олимпиаде мы решали через способ указанный Maru. тоесь смотрим находится ли заданная точка по одну сторону с противоположной вершиной от прямой проведенной через две оставшиеся вершины.
bula3 Опубликовано 15 октября, 2010 Автор Жалоба Опубликовано 15 октября, 2010 Ну спасибо за советы, ща попробую))
bula3 Опубликовано 15 октября, 2010 Автор Жалоба Опубликовано 15 октября, 2010 Стоп, а разве векторное произведение это не вектор, может скалярное произведение??
0xDEADBEEF Опубликовано 15 октября, 2010 Жалоба Опубликовано 15 октября, 2010 Курс ангема давно был?Лезем на википедию и читаем.К стати, эта чудо-формула площади по трем точкам и есть векторное произведение в двумерном случае.
bula3 Опубликовано 15 октября, 2010 Автор Жалоба Опубликовано 15 октября, 2010 в прошлом году только, уже из памяти все вылетело, ладно посмотрю почитаю)
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти