В javascript у меня есть карта, которую я хотел бы наложить на гексы и превратить эти гексы либо в зеленый (земля), либо в синий (вода) в зависимости от того, сколько земли находится в гексе. Я предполагаю, что это как-то связано с определением цвета пикселя, и если он находится в диапазоне, который я считаю синим, то он считается «водой», как только он достигает определенного количества пикселей, которые являются водой, он просто превращается в воду кафельная плитка.
Проблема, с которой я сталкиваюсь, заключается в том, что я знаю, что мне нужно определить, где сканировать все пиксели, которые я хочу определить по цвету, но я не знаю, как это сделать с помощью шестнадцатеричного числа. С квадратной сеткой я мог бы сделать гнездо для петли, но не знаю, как это сделать с шестигранником.
Чтобы нарисовать шестигранник, я использую следующее
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));
}
}
Но я не понимаю, как я мог бы использовать это для определения, какие пиксели обнаруживать. Я не силен в математике.