Я создаю систему на основе хэшагона в формате HTML5, и мне нужно определить, какая гексагональная плитка в сетке была нажата при нажатии на холст.
Несколько часов поиска и попытки моих собственных методов ни к чему не привели, а перенос реализаций с других языков просто смутил меня до такой степени, что мой мозг вялый.
Сетка состоит из ровных верхних правильных шестиугольников, как на этой диаграмме:
По существу, учитывая точку и переменные, указанные в этом изображении, в качестве размера для каждого шестиугольника в сетке (R, W, S, H):
Мне нужно определить, находится ли точка внутри указанного шестиугольника.
Пример вызова функции будет pointInHexagon(hexX, hexY, R, W, S, H, pointX, pointY)
, где hexX и hexY - это координаты для верхнего левого угла ограничивающей рамки гексагональной плитки (например, верхний левый угол на изображении выше).
Есть ли у кого-нибудь идеи, как это сделать? На данный момент скорость не очень беспокоит.