Просто обрабатывайте каждую точку, как пиксель. Также представьте, что изображение повернуто на 90 ° CCW. Затем вы просто рисуете квадрат, который занимает меньше места, которое ему выделяется - таким образом вы получаете разделительные линии.
Здесь вы можете быстро поиграть. Несколько замечаний:
- 0) Я только наполовину ваши размеры изображения
- 1) 4 пикселей и 5 пикселей были выбраны произвольно
- 2) Я не заморачиваться с установкой цвета точки - вы можете легко сделайте это.
- 3) Я просто обработал область рисования, как обычное верхнее нижнее растровое изображение, в то время как ваше изображение, похоже, показывает, что все значения Y будут использоваться до следующего значения X. (Это похоже на поворот на 90 ° CCW ).
- 4) Я обращаюсь к пикселям с X и Y - возможно, вы были бы больше заинтересованы в обращении к ним с помощью одного номера? Если это так, вы можете легко написать функцию, которая будет отображать два коордата на одно число - индекс пикселей, если хотите.
I.e, если изображение 100 x 100, есть 10 000 пикселей. Вы можете обратиться к ним, указав число от 0 - 9999 Например
function 10k_to_100x100(index)
{
var x = index % 100;
var y = (index/100).toFixed(0);
plotPixelDot(x, y);
}
X просто остаток при делении на ширине Y является весь номер ответа, при делении на ширине
Вот фрагмент вы можете попробовать прямо здесь, на странице:
function byId(id){return document.getElementById(id);}
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded()
{
\t var x, y;
\t
\t for (y=0; y<20; y++)
\t {
\t \t for (x=0; x<100; x++)
\t \t {
\t \t \t drawDot(x, y, 'output');
\t \t }
\t }
}
function drawDot(xPos, yPos, canvasId)
{
\t var actualX=xPos*5, actualY=yPos*5;
\t var ctx = byId(canvasId).getContext('2d');
\t ctx.fillRect(actualX, actualY, 4, 4);
}
<canvas width=558 height=122 id='output'></canvas>
Этот удивительно. Спасибо! – JESTech