- •12 Графические возможности языка Паскаль
- •12.1 Управление графическим режимом
- •12.1.1 Процедуры управления графическим режимом
- •12.1.2 Функции управления графическим режимом
- •12.2 Процедуры управления экраном, окном, страницей
- •12.3 Управление цветом и палитрой
- •12.3.1 Процедуры управления цветом и палитрой
- •12.3.2 Функции управления цветом и палитрой
- •12.4 Работа с точками
- •12.4.1 Процедура работы с точками
- •12.4.2 Функции работы с точками
- •12.5 Процедуры работы с линиями
- •12.6 Процедуры построения фигур из линий
- •12.7 Процедуры построения криволинейных фигур
- •12.8 Работа с текстом в графическом режиме
- •12.8.1 Процедуры работы с текстом
- •12.8.2 Функции работы с текстом
- •12.9 Обмен с памятью
- •12.9.1 Процедуры обмена с памятью
- •12.9.2 Функция обмена с памятью
12.4 Работа с точками
12.4.1 Процедура работы с точками
Procedure ...
PutPixel ( x, y : Integer ; Color : Word ) ; | |
— |
закрашивает пиксель с заданными координатами заданным цветом. ( x,y) — координаты пикселя (задаются относительно левого верхнего угла окна или — если окно не установлено — относительно левого верхнего угла экрана). Color— цвет, в который закрашивается пиксель. |
12.4.2 Функции работы с точками
Function ...
GetMaxX : Integer; | |
— |
возвращает максимальную координату X(по горизонтали) для текущего драйвера в текущем режиме. |
GetMaxY : Integer; | |
— |
возвращает максимальную координату Y(по вертикали) для текущего драйвера в текущем режиме. |
GetX : Integer; | |
— |
возвращает координату X(по горизонтали) текущей позиции графического указателя относительно установленного графического окна. |
GetY : Integer; | |
— |
возвращает координату Y(по вертикали) текущей позиции графического указателя относительно установленного графического окна. |
GetPixel ( x, y : Integer ) : Word ; | |
— |
возвращает цвет пикселя с заданными координатами ( x, y ). |
12.5 Процедуры работы с линиями
Procedure ...
SetLineStyle ( LineStyle, Pattern, Thickness : Word ) ; | |
— |
задает текущие параметры линии (стиль, шаблон, толщину). LineStyle— стиль линии. Pattern— шаблон линии — задается только для линий, стиль которых определяется пользователем (LineStyle = UserBitLn). При этом два байта параметраPatternопределяют образец линии следующим образом: каждый установленный в единицу бит этого слова соответствует светящемуся пикселю в линии, нулевой бит — несветящемуся. Таким образом, параметрPatternзадает отрезок линии длиной в 16 пикселей. Этот образец периодически повторяется по всей длине линии. Thickness — толщина линии. Для стиляитолщиныв модулеGraphопределены следующие константы: Const SolidLn = 0 ; { сплошная линия } DottedLn = 1 ; { из точек } CenterLn = 2 ; { из точек и тире } DashedLn = 3 ; { пунктирная линия} UserBitLn = 4 ; { определяется пользователем } Const NormWidth = 1 ; { нормальная толщина — в один пиксель } ThickWidth = 3 ; { жирная линия — в три пикселя } Установленный процедурой стиль линии используется при построении прямоугольников, многоугольников и других фигур. В случае аварийной ситуации (недопустимые параметры) процедура не производит никаких изменений текущих параметров и устанавливает код ошибки: -11. |
GetLineSettings (var LineInfo : LineSettingsType ); | |
— |
возвращает текущие параметры линии (стиль, шаблон, толщину). LineInfo — переменная, в которую записываются текущие параметры линии — переменная типа LineSettingsType, который определен в модулеGraph: Type LineSettingsType = Record LineStyle : Word ; { стиль линии } Pattern : Word ; { шаблон } Tickness : Word { толщина } End ; |
SetWriteMode ( WriteMode : Integer ); | |
— |
устанавливает режим рисования линий — способ взаимодействия новых линий с существующим изображением. Для задания параметра WriteMode можно использовать, например, следующие определенные в модулеGraphконстанты: Const CopyPut = 0 ; { линии накладываются на существующее изображение } XorPut = 1 ;{ наложение с применением логической операцииXor: в точках пересечения выводимой линии с имеющимся изображением светимость пикселей инвертируется на обратную } Режим, установленный процедурой SetWriteMode, распространяется только на процедурыDrawPoly,Line,LineTo,LineRel, Rectangle. |
MoveTo ( x, y : Integer ); | |
— |
перемещает текущий графический указатель в точку с координатами ( x,y) (точка на экране не высвечивается). Координаты определяются относительно левого верхнего угла окна или — если окно не установлено — экрана. |
MoveRel ( dx, dy : Integer ); | |
— |
перемещает указатель на заданное расстояние ( dx,dy) по отношению к его предыдущему положению (x,y), т.е. в точку (x+dx,y+dy) (точка на экране не высвечивается). |
Line ( x1, y1, x2, y2 : Integer ) ; | |
— |
рисует отрезок прямой от точки ( x1,y1) до точки (x2,y2 ) без изменения значения графического указателя. Текущий цвет задается процедурой SetColor, текущие параметры линии — процедуройSetLineStyle, а режим построения линии — процедуройSetWriteMode. |
Пример 12.7(иллюстрация некоторых упомянутых выше процедур и функций):
Uses Graph ;
Var
Driver, Mode, ErrCode : Integer ;
Begin
Driver := Detect ;
InitGraph ( Driver, Mode , ’’ ) ;
ErrCode := GraphResult ;
If ErrCode <> grOK
then
Begin
WriteLn ( ‘Ошибка графики: ’, GraphErrorMsg ( ErrCode ) ) ;
ReadLn
End
else
Begin
Line ( 0, 0, GetMaxX, GetMaxY ) ;
ReadLn ;
CloseGraph
End
End.
LineTo ( x, y : Integer ); | |
— |
проводит отрезок прямой из текущей позиции (на которую установлен текущий указатель) до точки ( x,y). Текущий цвет задается процедурой SetColor, текущие параметры линии — процедуройSetLineStyle, а режим построения линии — процедуройSetWriteMode. |
LineRel ( dx, dy : Integer ); | |
— |
проводит отрезок прямой из текущей позиции в точку, сдвинутую относительно исходной позиции ( x,y) на (dx,dy), т.е. в точку (x+dx,y+dy). Текущий цвет задается процедурой SetColor, текущие параметры линии — процедуройSetLineStyle, а режим построения линии — процедуройSetWriteMode. |
Пример 12.8 (изменение стиля и толщины линии):
. . .
SetLineStyle ( DottedLn, 0, ThickWidth ) ;
Line ( 10, 10, 140, 250 ) ;
SetLineStyle ( SolidLn, 0, NormWidth ) ;
LineTo ( 240, 150 ) ;
. . .