Практика программирования (Бейсик, Си, Паскаль)



         

Отрезки прямых и прямоугольники


В системе QBasic для построения отрезков прямых и прямоугольников используется один и тот же оператор LINE по той причине, что обе эти фигуры могут быть определены двумя точкам — началом и концом отрезка или координатами противоположных вершин в прямоугольнике. Более того, на этот же оператор в Бейсике возложили функцию отображения залитого прямоугольника:

LINE (x1,y1l)-(х2,у2)[,[col][,mask] :' 0трезок прямой

LINE (x1,y1)-(x2,y2)[,[col] В [,mask] :' Контур прямоугольника

LINE (x1l,y1)-(x2,y2)[,[col] BF :' Залитый прямоугольник

В приведенных выше форматах оператора LINE координаты точек заданы как абсолютные оконные или экранные координаты. Если построению предшествовало задание границ изменения координат (WIND0W), то координаты точек задаются в терминах физических единиц задачи.

Если координатам точек предшествует добавка STEP, то в скобках задаются приращения относительно позиции текущей точки. Координаты первой точки могут отсутствовать (LINE - (х2,у2) ...), и тогда построение начнется с текущей точки.

Необязательный параметр col определяет цвет рисования, который может отличаться от цвета, установленного по оператору C0L0R.

Если отрезок прямой или контуры прямоугольника проводятся сплошной линией, то параметр mask не задается. Его функция заключается в том, чтобы в последовательности из очередных 16 пикселов линии определить, какие пикселы будут окрашены цветом линии, а какие будут окрашены цветом фона, т. е. останутся невидимыми. Значение mask представляет собой 16-битовую шкалу, в которой единичные разряды соответствуют видимым пикселам линии, а нулевые — невидимым. Например, для построения штриховой линии, у которой длина штриха равна длине пробела и состоит из 8 пикселов, достаточно указать mask = &HFF00.

В BGI-пакете функции построения отрезков прямых, границ прямоугольников и залитых прямоугольников четко разделены:

  • moveto (х, у); — перемещение СР в точку (х, у);

  • moverel (dx,dy) ; -- перемещение СР в точку (CP.x+dx,CP.y+dy) ;

  • lineto (х, у); — соединение СР отрезком с точкой (х, у);




    Содержание  Назад  Вперед