|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Vadim Meshkov 2:5020/400 06 Jan 2002 16:49:34 To : Konstantin Verboff Subject : Re: срочно нужен алг. -------------------------------------------------------------------------------- Vladimir Potapov <Vladimir.Potapov@p16.f5.n5035.z2.fidonet.org> пишет: VP> Как определить вхождение точки в треугольник? Пусть координаты вершин треугольника --- (X1,Y1), (X2,Y2), (X3,Y3) [вершины должны быть пронумерованы в порядке "против часовой стрелки"], а коор-ты испытуемой точки --- (x,y). Вычисляем: T1 = (Y2-Y3)*x + (X3-X2)*y + X2*Y3 - X3*Y2; T2 = (Y3-Y1)*x + (X1-X3)*y + X3*Y1 - X1*Y3; T3 = (Y1-Y2)*x + (X2-X1)*y + X1*Y2 - X2*Y1; Если все эти три величины положительны --- ты попал в треугольник, если одна равна нулю --- на ребро. Можно оптимизировать по числу операций. Параметры T1,T2,T3 с точностью до множителя --- это т.н. "треугольные" (еще барицентрические) координаты. С уважением к собравшимся, В.М. -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/64883689d8f3.html, оценка из 5, голосов 10
|