4916

BGI графика

Доклад

Информатика, кибернетика и программирование

BGI графика. В языках программирования специальных средств для создания графических приложений не было. Единственная возможность выводить графику на экран была только при помощи использования функции bios прямого обращения к видимой памяти. Задача д...

Русский

2012-11-29

15.2 KB

45 чел.

BGI графика.

В языках программирования специальных средств для создания графических приложений не было. Единственная возможность выводить графику на экран была только при помощи использования функции bios прямого обращения к видимой памяти. Задача довольно трудная и не все программисты за неё брались. Поэтому фирма Borland решила разработать библиотеку графических функций для своих компиляторов turbo pascal u turbo C, а библиотека получила название BGI. Данная библиотека позволяет переключать DOS-экран из текстового режима в графический и обратно. Переключение производится с указанием драйвера и требуемого режима.

Т.к. это было 20 лет назад, то никаких 1280х1024 и 16 млн. цветов там нет. Драйвер CGA поддерживает 320х200 и 4 цвета (красный желтый зеленый черный либо CMYK) есть ещё режим 640х200, но всего 2 цвета- черный и белый. Когда появились EGA-мониторы, в библиотеку Borland были добавлены соответствующие драйвера. Появилась возможность использовать 16 цветов с выбором этих 16 из палитры 256. Затем появился драйвер EGA64 c возможностью поддерживать 64 цвета. Когда появились мониторы VGA , драйвер обновили до EGAVGA(640х480). Последними драйверами были драйвера VESA . Использование этих драйверов более сложное, но зато они  позволяют использовать разрешения до 1024х768 и 256 цветов.

BGI графика очень медленная. Делать на ней игры невозможно. В современной графике для оконных приложений скорость немногим выше. Это GDI, разработанная Microsoft.

Основные функции BGI графики

  1. Вывод текста

Write и writeln не работают (за редким исключением). В графическом режиме используется специальная функция для вывода текста по указанным координатам, с указанным шрифтом и цветом.

  1. Функция для отображения точек.( SetPixel(координата, цвет))
  2. Рисование линий.

Линия между 2мя точками и линия из текущего положения в указанную точку.

  1. Рисование прямоугольников(rectangle) и закрашенных прямоугольников(bar).
  2. Окружности и эллипсы.

Переход в графический режим.

Для этого используется функция InitGraph(драйвер, режим, путь к драйверу) Если драйвер лежит рядом с программой, то путь не нужен ( ‘ ‘ )

Например: InitGraph(VGA,VGAHI,’ ’);

Графический режим может не инициализироваться. Продолжение работы программы в этом случае вызовет ошибку. Следовательно, нужно проверить, инициализировался он или нет. Для этого используется Const: GraphResult. Если 0- ошибок нет. Если не 0, то там ошибки.

  1. Для функции вывода текста используется функция OutText(координата Х, координата Y , Сам текст в кавычках ): текст будет рисоваться текущим шрифтом, текущим цветом.
  2. Для установки цвета- SetColor(номер цвета).
  3. Для установки шрифта- SetTextStyle(№, размер, стиль начертания).
  4. Для рисования линий- Line(x1,y1,x2,y2) либо LineTo(x,y).
  5. Переместить указатель в текущую точку- MoveTo(x,y)
  6. Рисование прямоугольников- Rectangle(x1,y1,x2,y2) –координаты 2х углов прямоугольника. Закрашенный прямоугольник- Bar(x1,y1,x2,y2).
  7. Установить стиль закрашивания SetFillStyle(
  8. Окружность. Circle(x,y,R)

 

А также другие работы, которые могут Вас заинтересовать

14618. ИССЛЕДОВАНИЕ ТРЕХФАЗНОЙ ЦЕПИ ПРИ СОЕДИНЕНИИ ПРИЕМНИКОВ ЗВЕЗДОЙ 67.77 KB
  Лабораторная работа № 3 ИССЛЕДОВАНИЕ ТРЕХФАЗНОЙ ЦЕПИ ПРИ СОЕДИНЕНИИ ПРИЕМНИКОВ ЗВЕЗДОЙ. Цель работы: Исследование режимов работы трехфазной цепи при соединении нагрузки звездой. Симметричный и несимметричный режимы. Влияние нейтрального провода. ПОРЯДОК В
14620. АВТОМАТИЧЕСКОЕ ВКЛЮЧЕНИЕ РЕЗЕРВНОГО ИСТОЧНИКА ПИТАНИЯ 107 KB
  Отчет по лабораторному практикуму Автоматическое включение резервного источника питания Цель работы Работа предназначена для практического ознакомления с принципом выполнения схемы автоматического включения резервного источника питания АВР. Исход
14621. Усталостные испытания 2.57 MB
  Усталостные испытания Методические указания к лабораторным практическим работам и КНИРС по специальным дисциплинам для студентов всех металловедческих и материаловедческих специальностей Усталостные испытания: Методические указания к лабор
14622. Решение обратной задачи кинематики трехзвенного манипулятора 96 KB
  Лабораторная работа №5: Вариант 1 Решение обратной задачи кинематики трехзвенного манипулятора. Цель работы: изучение алгоритмов решения обратной задачи кинематики. Решение ПЗП для трехзвенного манипулятора с вращательными парами: Дано: ...
14623. Решение обратной задачи кинематики двухзвенного манипулятора 176.5 KB
  Лабораторная работа №4: Вариант 2 Решение обратной задачи кинематики двухзвенного манипулятора. Цель работы: изучение алгоритмов решения обратной задачи кинематики Решение ПЗП для двухзвенного манипулятора с вращательными парами: Дано: Получим р...
14624. Решение прямой задачи кинематики манипулятора 294 KB
  Лабораторная работа №3: Вариант 1 Решение прямой задачи кинематики манипулятора. Цель работы: решение прямой задачи о положении манипуляционной системы на ЭВМ на основе формализованного описания кинематических цепей Геометрические характеристики звеньев: ...
14625. Изучение метода преобразования систем координат промышленных роботов и кодирования кинематических цепей «иркутским методом» на примере робота МП-9С (Ритм -01-02) 196.5 KB
  Лабораторная работа №2: Вариант 1 Изучение метода преобразования систем координат промышленных роботов и кодирования кинематических цепей иркутским методом на примере робота МП9С Ритм 0102 . ЦЕЛЬ РАБОТЫ: выбор абсолютной и связанных систем координат ПР;
14626. Изучение методики разработки программ в системе MATLAB при изучении кинематического управления роботами 156.5 KB
  Лабораторная работа №1: Вариант 1 Изучение методики разработки программ в системе MATLAB при изучении кинематического управления роботами. Изучение методики разработки программ в системе MATLAB при изучении кинематического управления роботами Цель работы: Изу...