TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

1. 15. 2.  Простейшие графические процедуры и функции

            После инициализации графического режима экран очищается и можно использовать процедуры рисования.

             SetBkColor(N);   - установить цвет "N" для пикселов фона. 

                                                                          По умолчанию установлен черный цвет фона.

              SetColor(N);       - установить цвет "N" для выводимых линий. 

                                                                          По умолчанию установлен белый цвет линий. 

             PutPixel(X, Y, N);    - высветить цветом "N" пиксел с координатами  X, Y. 

                                                                    Наибольшее значение параметра "N" возвращает                 функция GetMaxColor;.  Цвет задается аналогично цветам текста в модуле Crt - мож-но использовать целое число или соответствующую константу,  например,  при N<16:

0 - Black,  1 - Blue,  . .  15 - White.  Режим мерцания в графике не предусмотрен. 


               Circle(X, Y, R);       - построить окружность с центром X, Y и радиусом R.

              Line(x1, y1, x2, y2);   -  построить отрезок прямой линии от точки с коорди-

                                                                         натами  x1, y1  к точке с координатами  x2, y2.   

              Rectangle(x1, y1, x2, y2);   -  построить прямоугольник с левым верхним

                                                                         углом   в точке с координатами  x1, y1 и правым нижним углом в точке с координатами  x2, y2 ( стороны параллельны краям экрана ).  

              GetPixel(X, Y);   - функция возвращает цвет пиксела с координатами X, Y.

 

            Координаты точек имеют тип Integer,  остальные параметры - тип Word.

            Значения координат задаются в пределах  0 £X£ GetmaxX;  0 £Y£ GetmaxY;

            Перемещение курсора за пределы экрана игнорируется.

            Очистить графический экран можно процедурами: ClearDevice; (без изменения установленных параметров),  либо  GraphDefaults; (устанавливаются параметры,  принятые по умолчанию).

            Рассмотрим пример фрагмента программы:

 

Uses Crt,  Graph;            { раздел описаний для фрагментов программ N1- N8 }

const N= 500;

var X, Y, Vx, Vy, P: array[1..N] of integer;          ch: char;

    Gd, Gm, Gx, Gy, x1, y1, x2, y2, xc, yc, dx, dy, r: integer;

    i1, i2, zx, zy, ax, ay, i, k: integer;

begin                         { инициализация графики для фрагментов программ N1- N8 }

     Gd:=Detect;

InitGraph(Gd,Gm,'C:\tp7\bgi');Randomize; Gx:=GetMaxX; Gy:=GetMaxY;

{-----------------------------------------------------------------

            Фрагмент N 1  программы   "небо в алмазах"          ( рисование пикселов ).

----------------------------------------------------------------- }

SetColor(0);         Repeat  i:= 9 + random(7);  xc:= random(Gx);

                                                 yc:= random(Gy);

PutPixel(xc, yc, i);  Circle(xc, yc, 3)         Until KeyPressed;

{---------------------------------------------------------------- }

While KeyPressed do ch:= ReadKey;                  { очистка буфера клавиатуры }

CloseGraph;     end.                              { закончить работу в графическом режиме }

            После инициализации графики определяются переменные Gx,  Gy - максимальные значения координат по осям X,  Y.  Назначается черный цвет для линий,  которые будут выводиться.  Затем в цикле повторяется до нажатия любой клавиши высвечивание точек (пикселов) с номерами цвета "i" от 9 до 15 и координатами xc, yc.  Значения координат точек и номеров цвета определяются из заданного диапазона функцией Random.  Чтобы точки не "забивали" экран,  некоторые из них "гасятся" окружностью радиусом 3 пиксела с центром в появившейся точке.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz