В javascript у меня есть карта, которую я хотел бы наложить на гексы и превратить эти гексы в зеленый (земля) или синий (вода) в зависимости от того, сколько земли находится в гексе.Я предполагаю, что это как-то связано с определением цвета пикселя, и если он находится в диапазоне, который я считаю синим, то он считается как «вода», как только он достигает определенного количества пикселей, которые являются водой, он просто превращается в водуtile.
Проблема, с которой я столкнулся, заключается в том, что я знаю, что должен определить, где сканировать все пиксели, которые я хочу определить цвет, но я не знаю, как это сделать с гексом.С квадратной сеткой я мог бы сделать гнездо для цикла, но понятия не имел, как сделать это с гексом.
Чтобы нарисовать гекс, я использую следующее
function hex(x = 0, y = 0, side = 0, size = 10) {
ctx.beginPath();
ctx.moveTo(x + size * Math.cos(0), y + size * Math.sin(0));
for (side; side < 7; side++) {
ctx.lineTo(x + size * Math.cos(side * 2 * Math.PI / 6), y + size * Math.sin(side * 2 * Math.PI / 6));
}
}
Но я нене вижу, как я мог бы использовать это для определения, какие пиксели для обнаружения.Я не очень хорош в математике.