LINUX.ORG.RU
Ответ на: комментарий от buddhist

а вот и не угадали. Я тоже так в первый раз подумал.Представте себе прямоугольник, у которого a >> b, Там начинаются проблемы.

LIKAN ★★★
() автор топика
Ответ на: комментарий от buddhist

Перебирать есть смысл лишь если задача — одноразовая. А если таких точек внутри многоугольника дофига, то лучше триангулировать, а для упрощения выбора нужных треугольников, зону интереса определять графически: залить на изображении каждый треугольник своим номером интенсивности, потом примерно по координатам точки определить, в какие треугольники она может попасть, и уже потом точно вычислить, где она. Примерно так в опенгле работают с буфером выбора.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Здесь ты, конечно, прав, просто перебор — простейшая штука, а дальше пусть оптимизирует.

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

Перпендикуляр будет проведен к самой стороне, а к её продолжению. И мы соответственно посчитаем расстояние не до стороны, а до прямой, на которой эта сторона лежит, и если оно окажется маленьким относительно других (более близких) сторон - будет печаль-беда.

LIKAN ★★★
() автор топика
Ответ на: комментарий от buddhist

Да , собственно точка может быть снаружи, хотя для невыпуклых многоугольников описанная мною проблема может наблюдаться и для точек внутри.

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

Точно, ты прав. Тогда стоит посмотреть на алгоритмы заливки и триангуляции, как советует Эдик.

А что делать, если точка снаружи, пока не могу предположить.

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 2)
Ответ на: комментарий от buddhist

Может быть, считать расстояние до вершин? И та сторона, у которой сумма (двух) расстояний до вершин будет наименьшим — ближайшая.

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)
Ответ на: комментарий от buddhist

Была такая идея. Представь себе трапецию,с ооочень маленькой высотой. Притом одно основание трапеции сиильно больше другого. Мы ставим точку со стороны большего основания. На такой фигуре алгоритм глюкнет.

LIKAN ★★★
() автор топика
Ответ на: комментарий от r_asian

Ну так предложите вариант. Не то что бы у меня совсем идей не было, просто у всех из них есть изъяны. Только прежде почитайте тред, чтоб не предлагать то, что уже было отвергнуто.

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

не предлагать то, что уже было отвергнуто.

От тебя смердит гуманитарщиной. Что ты называешь «ближайшей гранью»?

Manhunt ★★★★★
()
Ответ на: комментарий от buddhist

А в чем проблема?

Зная координаты точки и концов отрезка, легко найти расстояние до отрезка. Будет 2 случая: перпендикуляр попадает на отрезок или нет. В первом случае ищешь длину перпендикуляра, во втором берешь расстояние до ближайшего конца.

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

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

nezamudich ★★
()
Ответ на: комментарий от LIKAN

Перпендикуляр будет проведен к самой стороне, а к её продолжению. И мы соответственно посчитаем расстояние не до стороны, а до прямой, на которой эта сторона лежит, и если оно окажется маленьким относительно других (более близких) сторон - будет печаль-беда.

Проверить, что перпендикуляр опущен между двумя вершинами, если он за вершиной, то для определения расстояния брать ближайшую к нему вершину.

xnick
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.