bula3 Опубликовано 14 октября, 2010 Жалоба Поделиться Опубликовано 14 октября, 2010 Это все из тех же задач:Зная координаты вершин треугольника определить принадлежность к ним четвертой точки))Т.е. если сложить площади 3 треугольников и сравнить их с площадью исходного треугольника то можно получить искомый ответ)) остается только вычислить эти самые площади треугольников, кто нибудь знает как??? Ссылка на комментарий
0xDEADBEEF Опубликовано 14 октября, 2010 Жалоба Поделиться Опубликовано 14 октября, 2010 Векторное произведение Ссылка на комментарий
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 в прошлом году только, уже из памяти все вылетело, ладно посмотрю почитаю) Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти