Скачать презентацию Графика в Паскале Содержание 1 2 3 Скачать презентацию Графика в Паскале Содержание 1 2 3

Графика в Паскале.ppt

  • Количество слайдов: 24

Графика в Паскале Графика в Паскале

Содержание 1. 2. 3. 4. 5. 6. Подключение модуля GRAPH. Использование драйверов через BGI-файлы. Содержание 1. 2. 3. 4. 5. 6. Подключение модуля GRAPH. Использование драйверов через BGI-файлы. Инициализация графического режима. Способы задания цвета и заливки, методы вывода геометрических фигур и текста. Построение графика функции. Эффекты мультипликации: перерисовка, видеостраницы, динамическое выделение памяти.

Модуль GRAPH. TPU l l Предназначен для инициализации графического режима монитора и вывода графической Модуль GRAPH. TPU l l Предназначен для инициализации графического режима монитора и вывода графической информации на экран монитора. Установить путь к файлу graph. tpu нужно через меню Options->Directories…

Графические режимы экрана l l l l VGA EGA CGA MCGA Hercules IBM ATT Графические режимы экрана l l l l VGA EGA CGA MCGA Hercules IBM ATT PC Для инициализации графического режима экрана используют BGIфайлы, которые размещаются в каталоге C: BPBGI.

Инициализация графического режима Uses GRAPH; Var Gr. Driver: Integer; {графический драйвер} Gr. Mode: Integer; Инициализация графического режима Uses GRAPH; Var Gr. Driver: Integer; {графический драйвер} Gr. Mode: Integer; {графический режим} Begin Gr. Driver: =Detect; {по умолчанию} Init. Graph(Gr. Drive, Gr. Mode, ‘C: BPBGI’); if Graph. Result<>gr. OK then Halt(1); (* вывод графической информации *) Read. LN; Close. Graph; End.

Система координат и методы рисования Для отображения объектов используются методы растрового (0, 0) пиксель Система координат и методы рисования Для отображения объектов используются методы растрового (0, 0) пиксель отображается указанным цветом Y 0 – и векторного X 0 R (X 0, Y 0) Y 0 + R объект имеет свои координаты расположения на экране – рисования. Y< 480 X< 640

Цветовая палитра l l l l 0 - Black 1 - Blue 2 - Цветовая палитра l l l l 0 - Black 1 - Blue 2 - Green 3 - Cyan 4 - Red 5 - Magenta 6 - Brown 7 - Light. Grey l l l l 8 - Dark. Grey 9 - Light. Blue 10 - Light. Green 11 - Light. Cyan 12 - Light. Red 13 - Light. Magenta 14 -Yellow 15 - White

Процедуры для задания параметров рисования Set. Bk. Color (color); { цвет фона } Set. Процедуры для задания параметров рисования Set. Bk. Color (color); { цвет фона } Set. Color (color); { цвет линий } Set. Fill. Style (Pattern, Color); { тип и цвет заливки } Set. Line. Style (Style, Pattern, Thickness); { тип линий }

Процедуры для рисования простых геометрических фигур Put. Pixel (x, y, color); { точка } Процедуры для рисования простых геометрических фигур Put. Pixel (x, y, color); { точка } Line (x 1, y 1, x 2, y 2); { линия } Rectangle (x 1, y 1, x 2, y 2); { прямоугольник } Arc (x 0, y 0, Start. Angle, End. Angle, Radius); { дуга } Circle (x 0, y 0, Radius); { окружность } Ellipse (x 0, y 0, Start. Angle, End. Angle, XRadius, YRadius); { эллипс } Pie. Slice (x 0, y 0, Start. Angle, End. Angle, Radius); { сектор } Draw. Poly (N, Points); { многоугольник }

Процедуры рисования объектов с заливкой l l Flood. Fill (x, y, color); { заливка Процедуры рисования объектов с заливкой l l Flood. Fill (x, y, color); { заливка } Fill. Poly (N, Points); { N-угольник } Fill. Ellipse (X 0, Y 0, XRadius, YRadius); { эллипс } Bar (x 1, y 1, x 2, y 2); { прямоугольник }

Процедуры вывода текста в графическом режиме l l Set. Text. Justify (Horiz, Vert); {выравнивание Процедуры вывода текста в графическом режиме l l Set. Text. Justify (Horiz, Vert); {выравнивание текста по горизонтали и по вертикали} Set. Text. Style(Font, Direction, Char. Size); {текущий шрифт, стиль и размер текста } Out. Text ( Text. String ); {вывод текста с текущего местоположения} Out. Text. XY ( X, Y, Text. String ); {вывод текста c местоположения (X, Y) }

Пример «Светофор» Нарисуем светофор из трех закрашенных в нужный цвет окружностей. Для этого трижды Пример «Светофор» Нарисуем светофор из трех закрашенных в нужный цвет окружностей. Для этого трижды будем использовать процедуры задания цвета Set. Color, задания типа заливки Set. Fill. Style, рисования закрашиваемого эллипса Fill. Ellipse.

Пример «Светофор» … Set. Color( Red ); Set. Fill. Style(1, Red); Fill. Ellipse(100, 50, Пример «Светофор» … Set. Color( Red ); Set. Fill. Style(1, Red); Fill. Ellipse(100, 50, 50); Set. Color( Yellow ); Set. Fill. Style(1, Yellow); Fill. Ellipse(100, 200, 50); Set. Color( Green ); Set. Fill. Style(2, Green); Fill. Ellipse(100, 300, 50); …

Задание для самостоятельного выполнения l Нарисовать простой объект, используя систему координат графического экрана и Задание для самостоятельного выполнения l Нарисовать простой объект, используя систему координат графического экрана и процедуры для рисования простых геометрических фигур. 1. Машина 2. Снеговик 3. Матрешка 4. Домик 5. Кораблик 6. Зонтик 7. Цветок 8. Елка 9. Заяц 10. Радуга 11. Гриб 12. Самолет

Пример «График функции» Вывести график функции Y=x на заданном отрезке [a, b], используя процедуру Пример «График функции» Вывести график функции Y=x на заданном отрезке [a, b], используя процедуру Put. Pixel. Вид функции y=x задать через описание функции F(x). Вычисление наибольшего и минимального значения функции задать через описание соответствующих процедур или функций.

Пример «График функции» … (X 1, Y 1) {задаем границы вывода на экран} X Пример «График функции» … (X 1, Y 1) {задаем границы вывода на экран} X 1: =10; x 2: =getmaxx-10; Y 1: =10; y 2: =getmaxy-10; a {шаг по х через один пиксель} Step. X: =(b-a)/(x 2 -x 1); {вычисляем Ymax, Ymin}… {вычисляем масштаб по оси Y} my: =(y 2 -y 1)/(ymax-ymin); Ymax b Ymin (X 2, Y 2)

Пример «График функции» Xx: =a; For x: =x 1 to x 2 do Begin Пример «График функции» Xx: =a; For x: =x 1 to x 2 do Begin yy: =F(xx); xx: =xx+stepx; y: =round(y 1+my*(ymax-yy)); y, red); End; … Put. Pixel(x,

Задание для примера «График функции» 1. 2. 3. Вывести оси Ох, Оу. Расставить вывод Задание для примера «График функции» 1. 2. 3. Вывести оси Ох, Оу. Расставить вывод текстовой информации: начало и конец отрезка, имена осей и начало координат, вида графика функции. Вывести линейный график, используя процедуру Line.

Задание для самостоятельного выполнения l Построить график функции на заданном отрезке [a, b]: 1. Задание для самостоятельного выполнения l Построить график функции на заданном отрезке [a, b]: 1. 7. 2. 8. 3. 9. 4. 10. 5. 11. 6. 12.

Эффекты движения фигур и мультипликации l 1. 2. 3. Для этого используют следующие методы: Эффекты движения фигур и мультипликации l 1. 2. 3. Для этого используют следующие методы: использование перерисовки объекта цветом фона использовать смену видеостраниц сохранять фрагменты движущихся объектов в динамической памяти

Пример «Работы светофора» …{мигание красного цвета} Set. Color(Red); Set. Fill. Style(1, Red); Fill. Ellipse(100, Пример «Работы светофора» …{мигание красного цвета} Set. Color(Red); Set. Fill. Style(1, Red); Fill. Ellipse(100, 50, 50); Delay(1000); Set. Fill. Style(0, Red); Fill. Ellipse(100, 50, 50); Delay(1000); {мигание желтого цвета} … {мигание зеленого цвета} …

Управление видеостраницами для EGA и VGA мониторов l l Set. Visual. Page (Page); {устанавливает Управление видеостраницами для EGA и VGA мониторов l l Set. Visual. Page (Page); {устанавливает “видимой” на экране видеостраницу под номером Page } Set. Active. Page (Page); {устанавливает перенаправление всех графических операций на страницу под номером Page }

Работа с фрагментами изображения l l l Size: =Image. Size (x 1, y 1, Работа с фрагментами изображения l l l Size: =Image. Size (x 1, y 1, x 2, y 2); {возвращает размер памяти в байтах, необходимой для сохранения прямоугольной области экрана} Get. Mem (P, Size); {выделяет память под адресом в указателе p типа Pointer} Get. Image(x 1, y 1, x 2, y 2, p^); {Записывает изображение в буфер памяти P^} Put. Image (x 1, y 1, p^, Mode); {восстанавливает изображение из буфера памяти P^ в прямоугольник, левый верхний угол которого определен координатами (x, y)} Free. Mem (P, Size); {освобождение буфера}

Режимы отображения – значение Mode l l l Copy. Put XORPut ANDPut NOTPut {операция Режимы отображения – значение Mode l l l Copy. Put XORPut ANDPut NOTPut {операция Mov (замещение)} {операция XOR} {операция AND} {операция NOT}