Генерация точек отрезка по алгоритму простого ЦДА. Программирование на Си/С, исходник
Код на C++ void sline( int X0, int Y0, int X1, int Y1 ) { int i, n; float x, y, dx=0, dy=0;// Генерация точек отрезка по алгоритму простого ЦДА n = abs(X1-X0); if (n< abs(Y1-Y0) ) n = abs(Y1-Y0); if (n>0) {dx=(0.+X1-X0)/n; dy=(0.+Y1-Y0)/n;} x=X0; y=Y0; if (dx>0) x+=0.5; else if (dx<0) x-=0.5; if (dy>0) y+=0.5; else if (dy<0) y-=0.5; for(i=0;i<=n;i++)// алгоритм простого ЦДА { if (y>fimax[x]) fimax[x]=y; // Изменяем верхний горизонт if (y<fimin[x]) fimin[x]=y; // Изменяем нижний горизонт x+=dx; y+=dy; }// алгоритм простого ЦДА }
|