Работа видеоадаптера

Автор работы: Пользователь скрыл имя, 23 Мая 2013 в 13:14, курсовая работа

Описание работы

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

Содержание работы

1. Теоретическая часть 3
1. 1. Текстовый и графический режимы 3
1.2. Переключение между текстовым и графическим режимами (инициализация и закрытие графики) 5
1.3. Основные графические функции. 8
2. Практическая часть 15
2.1. Постановка задачи 15
2.2. Описание алгоритма 16
2.3. Описание программы 17
Приложение А – Тексты программ 18
Приложение Б – Контрольный пример 20

Файлы: 1 файл

курсоввая.doc

— 113.50 Кб (Скачать файл)

GetPixel(x,y: integer): word;

Возвращает цвет точки  с координатами (x,y).

Rectangle(x1,y1,x2,y2:integer);

Строит контур прямоугольника из линий текущего цвета.

Circle(x,y:integer; r:word);

Для рисования окружностей  используется процедура Circle с тремя  целочисленными параметрами: 
x,y - координаты центра окружности; 
r - радиус.

Arc(x,y:integer; StA,EndA,Radius:word);

Нарисует дугу окружности текущим цветом. x,y - координаты центра окружности данной дуги; 
Sta - начальный угол; (в градусах) 
EndA - конечный угол; (в градусах) 
Radius - радиус дуги.

Ellipse(x,y:integer; stA,endA:word; xr,yr: word);

Рисует дугу эллипса  текущим цветом. 
x,y - координаты центра эллипса; 
stA - начальный угол; 
endA - конечный угол; 
xr,yr - горизонтальная и вертикальная полуоси эллипса.

SetLineStyle(Ln,P,T)

Рисование линий, окружностей  и их элементов, контуров прямоугольников  осуществляется линиями. Процедура SetLineStyle позволяет изменять параметры этих линий. Параметры этой процедуры - целые числа. 
           Ln - стиль линии:

       0 = сплошная;

       1 = пунктирная;

       2 = штрихпунктирная;

       3 = штриховая;

       4 = заданная  пользователем.

  T - толщина линии:

       1 = нормальная;

       3 = толстая.

  P - шаблон:

       0 - во  всех случаях для Ln от 0 до 3;

        Для Ln = 4 устанавливается шаблон  линии в  виде

        двухбайтового числа, каждый бит  которого равен 1,

        если его надо высветить и 0 - в противном случае.

        Например линия в виде 1111111100000000 в

        шестнадцатиричной форме следует  записать $AA00.

Кратко описанные в  данной лабораторной работе графические  процедуры и функции составляют лишь небольшую часть богатого арсенала библиотеки GRAPH.TPU. Несмотря на то, что в последствии мы изучим все основные возможности этой библиотеки, вы в любой момент можете сделать это самостоятельно, воспользовавшись системой помощи. Для этого необходимо войти в раздел HELP главного меню, и выбрав разделы подменю Standart Units и Graph, выбрать описание необходимой процедуры или функции.

 

2. Практическая  часть

2.1. Постановка задачи

 

 

Выбор нужной точки экрана обычно выполняется подводом курсора  к этой точке и нажатием клавиши ENTER. Иногда бывает полезно  видеть и предыдущую выбранную точку — последнюю точку, зафиксированную клавишей ENTER, и новую точку, на которую указывает курсор. Для этого может использоваться, например, «метод резиновой нити».

В «методе резиновой  нити» один конец отрезка зафиксирован и указывает последнюю выбранную точку, второй конец перемещается в соответствии с изменением указываемой точки.

Построить ломаную линию  по заданныи вершинам. Вершины указываются  с клавиатуры по «методу резиновой  нити».

 

2.2. Описание алгоритма


 

 


 

 



 



 




 



 



 

 



 



 



Нет   да



 



нет   да



 

 

 

 

 

 

2.3. Описание  программы

 

Тип

Имя переменной

Описание

integer

X,y,x1,y1

Координаты точек на экране

integer

errcode

Код вывода ошибки

string

grPath

Путь к драйверу графическому

integer

Grdriver, grmode

Виды графических драйверов


 

 

Graph – подпрограмма графического режима

Klass – подпрограмма инициализации и работы с объектом (окружностью)

Тип

Имя переменной

Описание

integer

Nx,ny

Координаты точек




 

Приложение А – Тексты программ

 

unit klass;

interface

type kr=object

  private

    x,y : integer;

    visible : boolean;

  public

    constructor Init( nx,ny : integer );

    procedure Show;

    procedure Hide;

    procedure MoveTo( nx,ny : integer );

end;

implementation

uses graph;

constructor kr.Init( nx,ny : integer );

begin

  x:=nx; y:=ny; visible:=false;

end;

procedure kr.Show;

begin

  visible:=true; setcolor(1); circle(x,y,2);

end;

procedure kr.Hide;

begin

  visible:=false; setcolor(0);circle(x,y,2); end;

procedure kr.MoveTo(nx,ny : integer );

var v : boolean;

begin

  v:=visible;

  if (v) then Hide;

  x:=nx; y:=ny;

  if (v) then Show;

end;

end.

 

program prog3;

uses graph,klass,crt;

var

grdriver :integer;

grmode: integer;

grPath:string;

errcode,v:integer;

kr1:kr;

v1, d, m: integer;

x,y,x1,y1:integer;

i:string;

begin

grdriver:= vga;

grMode:= VGAHi;

grPath:='C:\bp\bgi' ;

initgraph (grdriver,grmode,grpath);

errcode:=graphResult;

if errcode <>grok then

begin

writeln('ЋиЁЎЄ . Џа®ўҐам⥠Їгвм c:\bp\bgi');

readln;

halt(1);

end;

x:=100;

y:=100;

repeat

x1:=x;

y1:=y;

kr1.init(x,y);

kr1.show;

readln(x);

readln(y);

if x<>0 then

line(x1,y1,x,y);

until x=0;

end.                                                                           

 

 

                                                                                                                                                                

 

 

                                                                                                                                                                

 

 

                                                                                                                                                                

 

 

                                                                                                                                                                




Информация о работе Работа видеоадаптера