Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ПРОВЕРИТЬ ПРИНАДЛЕЖНОСТЬ ТОЧКИ МНОГОУГОЛЬНИКУ (https://javascript.ru/forum/misc/23980-proverit-prinadlezhnost-tochki-mnogougolniku.html)

Livanderiaamarum 13.12.2011 22:56

ПРОВЕРИТЬ ПРИНАДЛЕЖНОСТЬ ТОЧКИ МНОГОУГОЛЬНИКУ
 
ПРИВЕТ ВСЕМ
Нужна функция определяющая принадлежит ли точка многоугольнику. Пространство 2D.
Функция должна принимать 2 аргумента, массив с координатами вершин многоугольника, и координаты точки.

координата должна обозначаться массивом например [1,4] означает
по иксу 1 по игрику 4.

функция должна возвращать либо true либо false


функция должна вызываться типа:

belongs(	
		  [
			[6,4], // массив 
			[6,0], // с
			[1,2], // вершинами 
			[4,5]  // многоугольника
		  ],
			[2,1]  // координата точки
	)



Livanderiaamarum 13.12.2011 23:01

если конечно кто-то осилит;)

dmitriymar 13.12.2011 23:12

Цитата:

Сообщение от Livanderiaamarum
если конечно кто-то осилит

если кто-то захочет потратить на это своё время,какое не обязан тратить!!

Livanderiaamarum 13.12.2011 23:15

Цитата:

Сообщение от dmitriymar (Сообщение 142624)
если кто-то захочет потратить на это своё время,какое не обязан тратить!!

это само собой имеется ввиду из тех кто заточит кто осилит;)

с другой стороны можно и не захотеть потому что задача слишком трудная для здешних посетителей (это ж вам не сайтики клепать) и по этому потребует много времени кое они тратит могут не захотеть. Своеобразный такой lvl детектор, кто возьмется, а кто нет. А кто-то если и возьмется из-за понта, то гуглить полезет потому что ВООБЩЕ НЕ ПРЕДСТАВЛЯЕТ как такие вещи можно сделать, как я уже говорил (это вам не сайтики клепать).:haha:

dmitriymar 13.12.2011 23:18

Цитата:

Сообщение от Livanderiaamarum
задача слишком трудная (это же не сайтики клепать вам) и по этому потребует много времени.

никто тебе не обязан тратить своё время на решение задачи ,какая с вероятностью почти 100% не встретится в жизни. ksa уже озвучил самое оптимальное и быстрое решение. если нужно другое решение ,то есть раздел http://javascript.ru/forum/job/ ,в каком можно найти исполнителя и договорится за оплату проделанной им работы.

от себя добавлю ,задача не сложная и в школе проходили эту и подобные задачи.и решений у неё множество правда школа физ.мат-но это ведь мелочи
из каждой вершины к точке провести векторы а дальше вообще примитив.
как одно из решений если сумма площадей получившихся 4 треугольников равна площади 4х угольника то точка принадлежит ему

Livanderiaamarum 13.12.2011 23:23

Цитата:

Сообщение от dmitriymar (Сообщение 142627)
никто тебе не обязан тратить своё время на решение задачи ,какая с вероятностью почти 100% не встретится в жизни. ksa уже озвучил самое оптимальное и быстрое решение. если нужно другое решение ,то есть раздел http://javascript.ru/forum/job/ ,в каком можно найти исполнителя и договорится за оплату проделанной им работы.

МНЕ тратить время? я эту задачу уже решил! седня за 3 часа написал) повозился и трассировкой луча по вершине полигона, там пришлось разные случаи учитывать. на деле это оказалось три if'a ))
Кому интересно и у кого уровень позволяет тот может попробовать.


а вот на счет не встретится в жизни это полный бред. Смотря какой уровень программиста. Сейчас уже начинается эпоха web приложений, canvas и прочие вещи. тут большинство быдловерстальщиков автоматически отсеиваются.)) вроде тех которые знают js на уровне "как цвет текста поменять и ajax запрос отправить"

dmitriymar 13.12.2011 23:25

Livanderiaamarum,
решение я тебе написал -не думаю что ты смог найти подобное решение
если площадь 2х из получившихся равна 0 то точка лежит на одной из линий ограничивающих фигуру

Livanderiaamarum 13.12.2011 23:35

Цитата:

Сообщение от dmitriymar (Сообщение 142631)
Livanderiaamarum,
решение я тебе написал -не думаю что ты смог найти подобное решение
если площадь 2х из получившихся равна 0 то точка лежит на одной из линий ограничивающих фигуру

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

dmitriymar 13.12.2011 23:36

Цитата:

Сообщение от Livanderiaamarum
МНЕ тратить время? я эту задачу уже решил! седня за 3 часа написал)

были бы знания ушлобы гораздо меньше времени:)
Цитата:

Сообщение от Livanderiaamarum
Кому интересно и у кого уровень позволяет тот может попробовать.

и не интересно и уровень практически всех на форуме позволяет-ты не пуп земли и не Энштейн -разачарую;)

dmitriymar 13.12.2011 23:38

Цитата:

Сообщение от Livanderiaamarum
прости меня конечно бренного, но как ты будешь считать площадь само пересекающейся фигуры?

парень я знаю координаты 4 вершин и 5 точки -дальше сплошная математика-определение длинны вектора зная координаты его начала и конца и теорема синусов/косинусов
а то что ты заметил-это примитивно-если точка не принадлежит фигуре-то длинны 3 векторов будут больше чем длинны 3х "прилежащих"(условно) к ним граней -на это ты потратил 3 часа?)-только это к параллелограмму только относится


Часовой пояс GMT +3, время: 08:29.