Сообщение от Gozar
|
Допенькал как получить точки прямой по Алгоритму Брезенхема до 45* градусов. Если переставить x и y можно даже получить все точки до 90*.
|
Данный алгоритм подходит для абсолютно любых линий.
Вот можно поиграться в песочнице.
function drawLineTo(x1, y1, x2, y2) {
var deltaX = Math.abs(x2 - x1),
deltaY = Math.abs(y2 - y1),
signX = x1 < x2 ? 1 : -1,
signY = y1 < y2 ? 1 : -1,
error = deltaX - deltaY;
setPixel(x2, y2);
while (x1 != x2 || y1 != y2) {
setPixel(x1, y1);
var error2 = error * 2;
if (error2 > -deltaY) {
error -= deltaY;
x1 += signX;
}
if (error2 < deltaX) {
error += deltaX;
y1 += signY;
}
}
}