Как нарисовать в Паскале?


Реклама:

Как нарисовать в Паскале

Сегодняшний урок мы посвятим не вполне обычным художникам, а программистам. Из данного урока вы узнаете, как нарисовать в Паскале различные изображения.

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

В данном уроке подразумевается, что вам известны такие понятия, как: синтаксис языка Паскаль, условный оператор, циклы и другие структуры Pascal, а все, что касается рисования - мы попробуем объяснить как можно проще, подробнее и доступнее.

Подключение граифического режима

Начиная с версии 4.0, в состав Турбо Паскаля включен графический модуль GRAPH, который содержит в общей сложности более 50 процедур и функций, предоставляющих программисту различные возможности управления графическим экраном.

Стандартный режим работы дисплея компьютера под управлением DOS - текстовый, поэтому любая программа, использующая графические средства, должна переключать экран в графический режим. Для этого, мы должны после заголовка программы разместить строчку следующего вида: uses Graph; (что в переводе на русский означает "используется графика").

Привер:

program risunok;
uses Graph;

...

Описание основных графических процедур

Самая важная графическая процедура - процедура InitGraph, которая имеет следующие параметры:
InitGraph(var grdr, grmd:integer, path:string);

Параметр grdr определяет тип графического адаптера и может принимать следующие значения (мы опишем лишь самые расспространенные и рекомендуемые):

  1. 0 - detect - режим автоматического определения
  2. 1 - CGA
  3. 3 - EGA
  4. 9 - VGA

Параметр grmd - номер или значение графического режима, допустимого при выбранном типе адаптера:

Ну а третий параметр path - строковая константа, которая указывает путь в каталог, где находится драйвет (файл с расширением .bgi в каталоге с программой Паскаль).

Пример:

program risunok;
uses Graph;
var ...;
begin
InitGraph(9, 2, 'd:\\tp7');
...

Теперь перейдем к описанию других функций и процедур:

MoveTo(X,Y); - Процедура устанавливает новое текущее значение графического курсора, X и Y - целые координаты графического курсора по горизонтали и вертикали.

SetColor(color); - Процедура устанавливает цвет фона, где color - переменная типа word, определяющая цвет фона.

SetBkColor(color); - Процедура устанавливает цвет фона, где color - переменная типа word, определяющая цвет фона.

PutPixel(X,Y,color); - Процедура выводит на экран точку с заданными координатами и цветом.

Line(X1,Y1,X2,Y2); - Процедура рисует линию с указанными координатами начала (X1,Y1) и конца (X2,Y2).

Circle(X,Y,R); - Процедура изображения окружности с указанным центром (X,Y) и радиусом R.

Rectangle(X1,Y1,X2,Y2); - Процедура предназначена для рисования прямоугольника с указанными координатами левого верхнего (X1,Y1) и правого нижнего угла (X2,Y2).

Вот таков список основных процедур для изображения на экране основных графических примитивов, теперь давайте покажем на простых примерах, как нарисовать в Паскале различные изображения, но прежде чем к ним приступить - упомянем еще один нюанс, который необходимо учитывать при рисовании на экране монитора в Паскале:

После перехода дисплея в графический режим система координат определена следующим образом:

O(0,0)-----------------------> X
 | 
 |   .(X1,Y1)
 |                                  
 |                .(X2,Y2)
 | Y
 

X1 меньше X2, Y1 меньше Y2

Нарисовать квадрат в Пскале:

program kvadrat;
uses graph;
begin
InitGraph(9, 2, 'D:\tp7\bgi');
SetColor(3);
Rectangle(100,100,200,200);
repeat until keypressed;
CloseGraph;
end.

Нарисовать машину на Паскале:

Program avtomobil;
Uses Crt,Graph;
Var gd,gm,i,k,x:integer;
begin
gd:=Detect;
Initgraph(gd,gm,'');
SetBkColor(green); {fon}
setfillstyle(1,4); {kyzov}
bar(40,430,160,375);
setfillstyle(1,8); {glyschak}
bar(39,420,25,428);
setfillstyle(1,5); {gryz 1}
bar(49,375,70,350);
setfillstyle(1,3); {gryz 2}
bar(75,374,90,360);
setfillstyle(1,12); {gryz 3}
bar(100,374,140,330);
setfillstyle(1,red); {kabina(1)}
bar(160,430,210,340);
setcolor(red);
setfillstyle(1,red); {nos kabini(2)}
bar(205,430,265,380);
setfillstyle(1,8); {bamper}
bar(265,430,250,425);
MoveTo(205,375);{kapot}
LineTo(260,375);
LineTo(265,380);
LineTo(210,380);
LineTo(205,375);
MoveTo(220,376);
setfillstyle(1,red);
floodfill(227,377,red);
setcolor(white); {kapot obveden}
MoveTo(265,380);
LineTo(260,375);
LineTo(210,375);
LineTo(215,380);
LineTo(265,380);
setcolor(black);{peregorodka m/d kuzovom i kabinoj}
MoveTo(160,375);
LineTo(160,430);
LineTo(160,375);
setfillstyle(1,3); {okno}
bar(204,380,165,345);
setcolor(cyan); {niz dveri}
MoveTo(165,420);
LineTo(170,420);
LineTo(204,380);
LineTo(165,380);
LineTo(165,420);
floodfill(170,415,cyan);
setfillstyle(1,green); {okno v okne}
bar(170,377,199,348);
setcolor(6); {zadnee koleso}
Circle(80,438,20);
setfillstyle(1,6);
floodfill(80,438,6);
setcolor(6); {perednee koleso}
Circle(210,438,20);
setfillstyle(1,6);
floodfill(210,438,6);
setcolor(14); {solnze}
Circle(20,20,70);
setfillstyle(1,14);
floodfill(20,20,14);
readln;
end.

Скачать программу: "Как нарисовать машину на Паскале" (car.pas)

Нарисовать деревню из 54 домов на Паскале:

PROGRAM Domiki;
uses Graph;
var grDriver: Integer;
grMode : Integer;
i,j : Integer;
{ ------------------------------ }
PROCEDURE Domik (x,y: Integer);
{ Рисует домик, у которого левый нижний угол }
{ имеет координаты (x,y) }
const dx=60; { Ширина фасада }
dy=40; { Высота фасада }
dx2=dx DIV 2;
dy2=dy DIV 2;
wx=16; { Ширина окна }
wy=22; { Высота окна }
wx2=wx DIV 2;
wy2=wy DIV 2;
BEGIN
Rectangle (x,y,x+dx,y-dy); MoveTo (x,y-dy);
Linerel (dx2,-dx2); { Левый скат крыши }
Linerel (dx2,dx2); { Левый скат крыши }
Rectangle (x+dx2-wx2,y-dy2-wy2,x+dx2+wx2,y-dy2+wy2); { Окно }
MoveTo (x+dx2,y-dy2); { Центр фасада (и окна) }
LineRel (0,wy2); { Вертикальная часть рамы окна }
MoveTo (x+dx2-wx2,y-dy2); { Центр левой части рамы окна }
LineRel (wx,0); { Горизонтальная часть рамы окна }
SetFillStyle (SolidFill,Red);
FloodFill (x+1,y-1,White);
SetFillStyle (SolidFill,Blue);
FloodFill (x+dx2,y-dy-1,White)
END;
{ --- }
BEGIN
grDriver:=VGA; grMode:=VGAHi;
InitGraph (grDriver,grMode,'..\bgi');
If GraphResult=grOk
then begin
For i:=1 to 6 do
For j:=1 to 5 do
Domik (i*80,j*80);
ReadLn
end
END.

Скачать программу: "Как нарисовать деревню на Паскале" (gorod.pas)

Остальные программы мы рекомендуем вам скачать из нашего архива и посотреть результаты своими глазами, вот список рекомендуемых программ:

  1. Как нарисовать звезду на Паскале
  2. Как нарисовать цветок на Паскале
  3. Как нарисовать велосипед на Паскале
  4. Как нарисовать дельфина на Паскале
  5. Как нарисовать червяка на Паскале
  6. Как нарисовать человека на Паскале
  7. Как нарисовать медведя на Паскале
  8. Как нарисовать елку на Паскале
  9. Как нарисовать кран на Паскале
  10. Как нарисовать гриб на Паскале
Hosted by uCoz