TURBO PASCAL |
Новости
|
Использование графики и звука в языке Turbo PascalПрежде, чем приступить к созданию графических программ на Turbo Pascal, необходимо ознакомиться с богатейшими графическими возможностями этого языка, сосредоточенными в стандартных модулях (библиотеках) GRAPH и CRT (название CRT происходит от Cathode-Ray Tube — электронно-лучевая трубка). Эти модули содержат описания стандартных констант, процедур и функций, используемых при работе с монитором в текстовом и графическом режимах.
Uses Crt, Graph; В системе программирования Turbo Pascal имеется хорошо развитая встроенная служба помощи, позволяющая получать подробное описание стандартных подпрограмм с примерами их применения. Поэтому ниже приведены только названия, описание параметров и назначение наиболее употребительных процедур и функций.
ClrScr Очищает экран или окно и помещает курсор в верхний левый угол. Delay(D: Word) Приостанавливает работу программы на указанное число D миллисекунд. Практически время задержки зависит от тактовой частоты процессора. GotoXY(X, Y: Byte) Перемещает курсор в позицию X строки Y экрана. NoSound Выключает источник звука. Sound(F: Word) Запускает источник звука с частотой F (Гц). TextBackGround(Color:Byte) Устанавливает цвет фона. TextColor(Color: Byte) Устанавливает цвет символов. Window(X1, Y1, X2, Y2: Byte) Определяет текстовое окно на экране. X1, Y1 — координаты левого верхнего угла окна, X2, Y2 — правого нижнего угла окна. KeyPressed: Boolean Анализирует нажатие клавиши. Результат TRUE, если на клавиатуре нажата клавиша (кроме Alt, Ctrl и т.п.), и FALSE в противном случае. Не задерживает исполнение программы. ReadKey: Char Читает символ с клавиатуры без эхоповтора на экране. Приостанавливает исполнение программы до нажатия на любую клавишу, кроме Alt, Ctrl и т.п.
Arc(X, Y: Integer; U1, U2, R: Word) Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y — координаты центра дуги, U1 — угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 — угол до конечной точки дуги, отсчитываемый так же, как U1, R — радиус дуги. Bar(X1, Y1, X2, Y2: Integer) Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 — координаты левого верхнего и правого нижнего углов прямоугольника. Bar3D(X1, Y1, X2, Y2: Integer; Glubina: Word; Top: Boolean) Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 — координаты левого верхнего и правого нижнего углов передней грани; Glubina — ширина боковой грани (отсчитывается по горизонтали), Top — признак включения верхней грани (если True — верхняя грань вычерчивается, False — не вычерчивается). Circle(X, Y: Integer; R: Word) Рисует текущим цветом окружность радиуса R c центром в точке (X,Y). ClearDevice Очищает графический экран, закрашивает его в цвет фона. ClearViewPort Очищает выделенное графическое окно, закрашивает его в цвет фона. CloseGraph Закрывает графический режим, т.е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана. Ellipse(X, Y: Integer; U1, U2, XR, YR: Word) Рисует дугу эллипса текущим цветом; X, Y — координаты центра эллипса; U1, U2 — углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR — горизонтальная и вертикальная полуоси эллипса. FillEllipse(X, Y: Integer; XR, YR: Word) Рисует заштрихованный эллипс, используя X,Y как центр и XR,YR как горизонтальную и вертикальную полуоси эллипса. FillPoly(N: Word; Var PolyPoints) Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints. InitGraph(Var Driver, Mode: Integer; Path: String) Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается, что драйвер находится в текущем каталоге. Line(X1, Y1, X2, Y2: Integer) Рисует линию от точки X1, Y1 до точки X2,Y2. LineTo(X, Y: Integer) Рисует линию от текущего указателя к точке X,Y. MoveTo(X, Y: Integer) Смещает текущий указатель к точке X,Y. OutTextXY(X, Y: Integer; TextString: String) Выводит текст в заданное место экрана. PieSlice(X, Y: Integer; U1, U2, Radius: Word) Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y — координаты центра сектора круга; U1 и U2 — начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius — радиус сектора. PutPixel(X, Y: Integer; Color: Word) Выводит точку цветом Color с координатами X, Y. Rectangle(X1, Y1, X2, Y2) Рисует контур прямоугольника, используя текущий цвет и тип линии. X1, Y1 — координаты левого верхнего угла прямоугольника, X2, Y2 — координаты правого нижнего угла прямоугольника. Sector(X, Y: Integer; U1, U2, XR, YR: Word) Рисует и штрихует сектор эллипса радиусами XR, YR с центром в X, Y от начального угла U1 к конечному углу U2. SetBkColor(Соlor: Word) Устанавливает цвет фона. SetColor(Соlor: Word) Устанавливает основной цвет, которым будет осуществляться рисование. SetFillStyle(Pattern, Color: Word) Устанавливает образец штриховки и цвет. SetLineStyle(LineStile, Pattern, Thickness: Word) Устанавливает толщину и стиль линии. SetTextStyle(Font, Direction, CharSize: Word) Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста. SetViewPort(X1, Y1, X2, Y2: Integer; ClipOn: Boolean) Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне. GetMaxX и GetMaxY Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали. GraphResult Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от —1 до —14).
Эти примеры иллюстрируют основные моменты, возникающие при написании графических программ:
Из-за недостатка места некоторые программы не содержат действий по выдаче сообщений о возможных ошибках графики, хотя они очень важны.
Содержание:
|
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |