Графика в Турбо Паскале — страница 5

  • Просмотров 3039
  • Скачиваний 278
  • Размер файла 22
    Кб

Заголовок: Function ImageSize(X1, Y2, X2, Y2: Integer): Word; Здесь X1..Y2 – координаты левого верхнего(X1,Y1) и правого нижнего(X2,Y2) углов фрагмента изображения. Процедура GetImage. Помещает в память копию прямоугольного фрагмента изображения. Заголовок: Procedure GetImage(X1, Y1, X2, Y2: Integer; var Buf); Здесь X1..Y2 – координаты углов фрагмента изображения; Buf – переменная или участок кучи, куда будут помещена копия видеопамяти с фрагментом изображения. Размер Buf должен быть не

меньше значения, возвращаемого функцией ImageSize с теме же координатами X1..Y2. Процедура PutImage. Выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage. Заголовок: Procedure PutImage(X, Y: Integer; var Buf; Mode: Word); Здесь X, Y –координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf – переменная или участок кучи, откуда берется изображение; Mode – способ копирования.

Как видим, координаты правого нижнего угла не указываются, так как они полностью определяются размерами вновь выводимой на экран копии изображения. Координаты левого верхнего угла могут быть какими угодно, лишь бы только выводимая копия уместилась в пределах экрана(если копия не сможет разместиться на экране, она не выводится и экран остается без изменений). Параметр Mode определяет способ взаимодействия вновь размещаемой

копии уже имеющимся на экране изображением. Взаимодействие осуществляется путем применения кодируемых этим параметром логических операций к каждому биту копии и изображения. 2. ЛИСТИНГ ПРОГРАММЫ Program Brodvey; Uses Graph,Crt; Var i, a, y, x: integer; procedure init; var gD, gM, EC:integer; begin gD:=detect; InitGraph(gD, gM, ''); end; begin init; SetColor(1); Line(520,0,0,192); Line(530,0,0,210); SetFillStyle(1,8); FloodFill(525,0,1); Line(550,0,0,450); Line(565,0,0,600); SetFillStyle(1,0); FloodFill(540,0,1); SetFillStyle(1,10); FloodFill(555,0,1); Line(800,0,0,1700); SetFillStyle(9,10); FloodFill(555,0,1);

SetFillStyle(1,8); FloodFill(570,0,1); SetFillStyle(9,2); FloodFill(630,400,1); Line(0,100,90,100); LIne(90,100,90,158); SetFillStyle(1,4); FloodFill(2,120,1); Line(5,105,20,105); Line(5,105,5,115); Line(20,105,20,115); Line(5,115,20,115); SetFillStyle(1,14); FloodFill(7,110,1); Line(40,105,55,105); Line(40,105,40,115); Line(55,105,55,115); Line(40,115,55,115); SetFillStyle(1,14); FloodFill(45,110,1); Line(70,105,85,105); Line(70,105,70,115); Line(85,105,85,115); Line(70,115,85,115); SetfillStyle(1,14); FloodFill(80,110,1); Line(5,130,20,130); Line(5,130,5,140); Line(20,130,20,140); Line(5,140,20,140); SetFillStyle(1,14); FloodFill(7,135,1); Line(40,130,55,130); Line(40,130,40,140); Line(55,130,55,140); Line(40,140,55,140); SetFillStyle(1,14); FloodFill(45,135,1);

Line(70,130,85,130); Line(70,130,70,140); Line(85,130,85,140); Line(70,140,85,140); SetFillStyle(1,14); FloodFill(75,135,1); Line(0,60,40,60); Line(40,60,40,100); SetFillStyle(1,5); FloodFill(5,65,1); Line(5,70,15,70); Line(5,70,5,80); line(15,70,15,80); Line(5,80,15,80); SetfillStyle(1,14); FloodFill(10,75,1); Line(25,70,35,70); Line(35,70,35,80); Line(25,70,25,80); Line(25,80,35,80); SetFillStyle(1,14); FloodFill(30,75,1); Line(0,15,55,15); Line(55,15,55,100); SetFillStyle(1,6); FloodFill(10,20,1); Line(5,40,15,40); Line(5,40,5,55); Line(15,40,15,55); Line(5,55,15,55); SetFillStyle(1,14); FloodFill(10,45,1); Line(25,40,35,40); Line(25,40,25,55); Line(35,40,35,55); Line(25,55,35,55); SetFillStyle(9,8); FloodFill(30,45,1); Line(45,40,55,40); Line(45,40,45,55); Line(55,40,55,55);