Как курсор детектит границы кнопки с clipPath, через коллизию?

Пытаюсь сделать свою первую игру про астероиды. Корабль сталкивается с астероидами и игра завершается (без физики), а на них clipPath = polygon для задания неправильной формы. Задал изменение цвета при наведении на них, и курсор идеально реагирует на весть кривой путь астероида. Как он это делает? Посмотрел код для коллизии полигонов, это ещё слишком сложно для меня. Я подумал, может можно на мой корабль разместить точки выполняющие функцию курсора, и ненужно будет писать код коллизии? )


Ответы (1 шт):

Автор решения: EzioMercer

То что вы предложили - это не всегда будет работать, потому что полигоны могут пересекаться рёбрами

Вы можете пройтись по всем отрезкам первого и второго полигона и проверить пересекается ли хоть один отрезок первого полигона с каким-либо отрезком второго полигона (тут есть очень простой алгоритм)

→ Ссылка