ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
5774 Топик полностью
-Tyмблep- (28.01.2004 13:31, просмотров: 1) ответил Бaв на Похоже опять не то
Когда то я так на 52м жуке рисовал все - и алфавит тоже. Стреляет как из пулемета. /*-------------------------------------*/ /* x,y - начальные координаты dx,dy - разность координат, а не ширина в пикселах dx = x2-x1 dy = y2-y1 color - 1/0 чертить/стирать (глобальная переменная для экономии стека) */ void line (idata byte x, idata byte y, idata signed char dx, idata signed char dy) { data byte add_x =1, add_y =1; data byte m_l, n_l; data byte sum_l; data byte count_l; if (dx < 0) {dx=-dx; add_x = -1;} if (dy < 0) {dy=-dy; add_y = -1;} ++ dx; ++ dy; if (dx >= dy) { m_l = dx / dy; /* частное */ n_l = dx % dy; /* остаток */ for (sum_l=0;;) { for (count_l=0; count_l < m_l; inc count_l) { point (x,y); x += add_x; if (--dx leq 0) return; } sum_l +=n_l; if (sum_l >= dy) { sum_l -= dy; point (x,y); x += add_x; if (--dx leq 0) return; } y += add_y; } } else { m_l = dy / dx; /* частное */ n_l = dy % dx; /* остаток */ for (sum_l=0;;) { for (count_l=0; count_l < m_l; inc count_l) { point (x,y); y += add_y; if (--dy leq 0) return; } sum_l +=n_l; if (sum_l >= dx) { sum_l -= dx; point (x,y); y += add_y; if (--dy leq 0) return; } x += add_x; } } }