Работа с графикой в PascalABC



Работа с графикой в PascalABC

После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно.

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

С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.

Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;

Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.

Все команды библиотеки GraphABC являются подпрограммами и описаны в виде процедур и функций. Для того, что бы команда выполнилась необходимо указать команду и задать значения параметров.

Управление графическим окном

Работа с графикой в PascalABC

После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно.

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

С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.

Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:Uses GraphABC;

Графический экран PascalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. Начало отсчета – левый верхний угол экрана. Ось x направлена вправо, а ось y –вниз. Координаты исчисляются в пикселях.

Все команды библиотеки GraphABC являются подпрограммами и описаны в виде процедур и функций. Для того, что бы команда выполнилась необходимо указать команду и задать значения параметров.

Процедуры рисования графических примитивов

Работа с графикой в PascalABC

Процедуры, используемые для работы с цветом

Работа с графикой в PascalABC

Процедуры для работы с текстом

Работа с графикой в PascalABC

Цвета в PascalABC

Работа с графикой в PascalABC

Пример графической программы, рисующей изображение дома:

Program Domik; 
uses Graphabc; //подключение модуля GraphABC 
begin 
   SetWindowWidth(800); //ширина окна программы 
   SetWindowHeight(600); //высота окна программы 
   SetPenWidth(3); //толщина пера 
   SetFontSize(18); //размер шрифта 
   SetFontColor(clRed); //цвет шрифта 
   SetFontStyle(fsBold); //жирный стиль шрифта 
   TextOut(100,100,'Домик'); //текст 
   Rectangle(200, 300, 600,600); //дом 
   Circle(400,225, 40); //круг 
   SetBrushColor(clAqua); //цвет заливки окна 
   FillRect(300, 400,500,500); //процедура заливки окна 
   rectangle(300,400,500,500); //окно 
   Line(400,400,400,500); // окно 
   Line(300,450,500,450); //окно 
   Line(200,300,400,150); //крыша 
   Line(400,150,600,300); //крыша 
   Line(480,210,480,160); //труба 
   Line(480,160,520,160); //труба 
   Line(520,160,520,240); //труба 
end.
Работа с графикой в PascalABC
Рисунок в PascalABC

Программа, рисующая фигурку:

Program Figurka; 
   uses GraphABC;
   begin
   SetWindowSize(500, 500); //задаем размер графического окна
   SetPenWidth(3); //устанавливаем стиль пера
   SetBrushColor(clFuchsia); //устанавливаем цвет кисти
   Circle(225,160,50); //рисуем окружность
   Line(225,160,225,180); //рисуем линии
   Line( 210,190,240,190);
   Line( 225,210,225,250);
   Line( 100,100,200,260);
   Line( 200,260,400,260);
   Line( 210,350,200,480);
   Line(240,350,250,480);
   Rectangle(200,230,250,350); //рисуем прямоугольник SetBrushColor(clLime);
   FillRect(0, 480,500,500); //рисуем закрашенный прямоугольник
   SetBrushColor(clWhite);
   Circle(205,150,10);
   Circle(245,150,10); 
end.
Работа с графикой в PascalABC

Практическая работа за компьютером

Задание 1. Определите координаты и составьте программу, выводящую на экран рисунок  дома и дерева.

Работа с графикой в PascalABC

Программа будет иметь вид:

Program domik_2; 
uses GraphABC; 
var i: integer; 
st:string; 
begin 
   SetWindowSize(500, 500); 
   {Коричневая стена} 
   SetPenWidth(2); 
   SetBrushColor(clBrown);
   FillRect(100,50,150,100);
   {Крыша желтого цвета} 
   SetPenColor(clBrown); 
   Line(125,25,80,75);
   Line(125,25,170,75);
   FloodFill(125, 30,clYellow);
   {Крона дерева} 
   SetPenColor(clGreen); 
   SetBrushColor(clGreen);
   Ellipse(100,150,150,200); 
   {ствол дерева} 
   SetBrushColor(clBrown); 
   FillRect(120,200,130,230);
end.

Задание 2. Используя оператор цикла и введя переменную для пересчета координат по оси  x, постройте “поселок”, состоящий из 5 домов. Внесите соответствующие дополнения и изменения в предыдущую программу.

Работа с графикой в PascalABC

Весь наш «поселок» выстроился вдоль горизонтальной оси экрана — оси X. Построение рисунка начинается с левого верхнего угла стены первого дома — точки с координатами (100, 50). Координата Y не изменяется. Чтобы начать рисовать второй домик, нужно координату X увеличить на 150 (50 точек — ширина первого дома и 100 точек — расстояние между домиками).

Выберем в качестве параметра цикла целочисленную переменную X.
Для всех элементов нашего рисунка абсолютное значение координаты X заменим на относительное. Например, для стены дома процедура для рисования запишется следующим образом:

FillRect(x,50,x+50,100);

Сформулируем условие выполнения цыклических действий для нашей задачи.Какие координаты имеет левый верхний угол пятого дома? Конечное значение выбранного нами параметра цикла x = 700. Тогда условие выполнения цикла записывается так: x<=700.

Словесное описание алгоритма коротко можно записать так:

Переменной цикла x присвоить начальное значение 100. Пока x<=700 выполнять серию действий «Нарисуй дом и дерево», после каждого фрагмента рисунка увеличивать значение переменной цикла  на 150.

Программа будет иметь вид:

Program Domik; 
uses GraphABC; 
var i: integer; 
st:string; 
x:integer; 
begin 
    SetWindowSize(800, 500); 
    x:=100; 
    While x<=700 do 
    begin 
        {Коричневая стена} 
        SetPenWidth(2); 
        SetBrushColor(clBrown); 
        FillRect(x,50,x+50,100); 

        {Крыша желтого цвета} 
        SetPenColor(clBrown); 
        Line(x+25,25,x-20,75); 
        Line(x+25,25,x+70,75); 
        FloodFill(x+25, 30,clYellow); 
        {Крона дерева} 
        SetPenColor(clGreen); 
        SetBrushColor(clGreen); 
        Ellipse(x,150,x+50,200); 

        {ствол дерева} 
        SetBrushColor(clBrown); 
        FillRect(x+20,200,x+30,230); 
        x:=x+150; 
    end; 
end.

Оцените статью
Добавить комментарий

  1. Людмила

    Отличное подспорье в подготовке к уроку. Спасибо

    Ответить
  2. Алла

    Большое спасибо.Хорошо представлен материал, удобнее чем в справке языка.

    Ответить
  3. Alex

    Спасибо! Доступно и методически грамотно изложено.

    Ответить
  4. Алексей

    Спасибо большое! Просто и доступно!

    Ответить
  5. владимир

    Прекрасно и доходчиво изложен материал.Очень мне помог.Спасибо

    Ответить
  6. Маря

    Зашибись, классно

    Ответить
  7. Галина Гаврюкова

    Давно пользуюсь Вашими разработками. Большое спасибо.
    Ищу урок о преобразовании компьютерной системы координат в математическую в PascalABC.
    Для Visual Basic у Вас такой урок есть.

    Ответить
  8. Вова

    Очень помогло!! спасибо за такую информацию

    Ответить
  9. Енот

    Сайт написан умными людьми. Информация самая полезная. Спасибо вам!

    Ответить
  10. Валерий

    СПАСИБО ВАМ БОЛЬШОЕ ЭТО ОЧЕНЬ ПОНЯТНЫЙ И НАГЛЯДНЫЙ УРОК.

    Ответить
Adblock
detector