
Сообщение от
Hammer
...смотря для какого разрешения.
При псевдографике 2х3 точки пальмира выжимает 140х120 точек. Функция на си выглядит вот так...
Код:
// Быстрый алгоритм Брезенхэма для линий
void draw_line(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) {
int16_t dx;
int8_t dy;
char sx;
char sy;
int err;
// Вычисляем dx = abs(x1 - x0)
if(x1 >= x0) {
dx = x1 - x0;
sx = 1;
} else {
dx = x0 - x1;
sx = -1;
}
// Вычисляем dy = -abs(y1 - y0)
if(y1 >= y0) {
dy = -(y1 - y0);
sy = 1;
} else {
dy = -(y0 - y1);
sy = -1;
}
err = dx + dy;
while(1) {
set_pixel_2x3(x0, y0); // оптимизированная функция
if(x0 == x1 && y0 == y1) break;
int e2 = err<<1;
if(e2 >= dy) {
err += dy;
x0 += sx;
}
if(e2 <= dx) {
err += dx;
y0 += sy;
}
}
}
Как видишь инт уже нужен для err и для вычисления dx. К тому же нужно понимание что есть знаковые переменные.