|
C++Строится линия b(x-x0) + a(y-y0) = 0. Минимизирует abs(eps), где eps = 2*(b(x-x0)+ a(y-y0)). См. Newman and Sproull: ``Principles of Interactive Computer Graphics'' McGraw-Hill, New York, 1979, pp 33-44. */ (* register dx = 1; int a = x1 x0; if (a «0) dx = -1, a = -a; register dy = 1; int b = y1 y0; if (b «0) dy = -1, b = -b; int two_a = 2*a; int two_b = 2*b; int xcrit = -b + two_a; register eps = 0; for (;;) (* put_point(x0,y0); if(x0==x1 amp; amp; y0==y1) break; if(eps = xcrit) x0 += dx, eps += two_b; if(eps=a !! a«=b) y0 += dy, eps -= two_a; *) *) Предоставляются функции для очистки экрана и его обноления: void screen_clear() (* screen_init(); *) // очистка void screen_refresh() // обновление (* for (int y=YMAX-1; 0«=y; y) (* // сверху вниз for (int x=0; x«XMAX; x++) // слева направо cout.put(screen[x][y]); cout.put('\n'); *) *) Функция ostream::put() применяется для печати символов как символов; ostream::operator«() печатает символы как млые целые. Пока что вы может представлять себе, что эти опрделения доступны только в откомпилированном виде, который вы изменить не можете. 7.6.2 Библиотека Фигур Нам нужно определить общее понятие фигуры (shape) ...» |
Код для вставки книги в блог HTML
phpBB
текст
|
|