Как построить дом в pascal abc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Цвета в 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

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

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.

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

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

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

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 домов. Внесите соответствующие дополнения и изменения в предыдущую программу.

Весь наш «поселок» выстроился вдоль горизонтальной оси экрана — оси 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.

Источник

Рисование объектов в Pascal ABC

Выполним несколько простых заданий в Pascal ABC.
1. Рисуем окружность радиусом 50 и центром в точке 100х100.

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
circle(100,100,50);  {рисуем окружность радиуса 50  центром в точке (100;100)}
end.

Результат показан на рисунке.

2. Изменим радиус окружности с 50 на 60.

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
circle(100,100,60);  {рисуем окружность радиуса 60  центром в точке (100;100)}
end.

3. Переместим окружность в середину экрана, предварительно рассчитав (приблизительно) координаты центра.

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
circle(300,200,60);  {рисуем окружность радиуса 60  центром в точке (300;200)}
end.

Координаты центра примерно (300;200).

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

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
SetPenColor(clRed);  {устанавливаем цвет пера — красный}
circle(300,200,60);  {рисуем окружность радиуса 60  центром в точке (300;200)}
end.

 5. Закрасим окружность синим цветом.
Это можно сделать двумя способами: с помощью заливки и установив цвет кисти.
В первом случае устанавливается цвет пера, рисуется окружность, затем проводится заливка (функция FloodFill(х,у, color)). х и у – это координаты точки внутри закрашиваемой фигуры.
Во втором случае устанавливается цвет пера и цвет кисти, затем рисуется фигура, уже закрашенная.
Первый способ:

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
SetPenColor(clRed);  {устанавливаем цвет пера — красный}
circle(300,200,60);  {рисуем окружность радиуса 60  центром в точке (300;200)}
FloodFill(300,200, clBlue); {Первый способ – заливка области с центра}
end.

Второй способ:

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
SetPenColor(clRed);  {устанавливаем цвет пера — красный}
SetBrushColor(clBlue);        {Второй способ – установка цвета кисти}
circle(300,200,60);  {рисуем окружность радиуса 60  центром в точке (300;200)}
end.

6. Рисуем разноцветного снеговика

program graphic;
uses graphABC;  {подключаем модуль GraphABC для работы}
begin
SetPenColor(clBlack);  {устанавливаем цвет пера — черный}
{нижний шар}
circle(300,300,80);  {рисуем окружность радиуса 80  центром в точке (300;300)}
FloodFill(300,300, clNavy); {заливка области темно-синим цветом}
{средний шар}
circle(300,160,60);  {рисуем окружность радиуса 60  центром в точке (300;160)}
FloodFill(300,160, clLime); {заливка области ярко-зеленым цветом}
{верхний шар}
circle(300,60,40);  {рисуем окружность радиуса 40  центром в точке (300;60)}
FloodFill(300,60, clFuchsia); {заливка области сиреневым цветом}
end.

7. Рисуем зеленую елку

program graphic;
uses graphABC;   { подключаем модуль GraphABC для работы }
begin  {начало основного блока операторов программы}
SetPenColor(clGreen);  {установка цвета пера – зеленый цвет}
Line(100,400,200,300);  {рисуем отрезок из точки (100;400) до точки
(200;300)}
Line(200,300,150,300);
Line(150,300,210,250);
Line(210,250,180,250);
Line(180,250,220,200);
Line(220,200,260,250);
Line(260,250,230,250);
Line(230,250,300,300);
Line(300,300,250,300);
Line(250,300,350,400);
Line(350,400,100,400);
FloodFill(115,390,clGreen);  {заливка области зеленым цветом с точки (115;390)}
End.

8. Дорисуем елке ствол, используя оператор Закрашенный прямоугольник.

program graphic;
uses graphABC;   { подключаем модуль GraphABC для работы }
begin  {начало основного блока операторов программы}
SetPenColor(clGreen);  {установка цвета пера — зеленый цвет}
Line(100,400,200,300);  {рисуем отрезок из точки (100;400) до точки
(200;300)}
Line(200,300,150,300);
Line(150,300,210,250);
Line(210,250,180,250);
Line(180,250,220,200);
Line(220,200,260,250);
Line(260,250,230,250);
Line(230,250,300,300);
Line(300,300,250,300);
Line(250,300,350,400);
Line(350,400,100,400);
FloodFill(115,390,clGreen);  {заливка области зеленым цветом с точки (115;390)}
SetBrushColor(clBrown);{устанавливаем коричневый цвет кисти}
Rectangle(212,400,232,500); {закрашенный прямоугольник внизу зеленой части елки}
End.

9. Нарисуем синий домик под елочкой

program graphic;
uses graphABC;   { подключаем модуль GraphABC для работы }
begin  {начало основного блока операторов программы}
SetPenColor(clGreen);  {установка цвета пера — зеленый цвет}
Line(100,400,200,300);  {рисуем отрезок из точки (100;400) до точки
(200;300)}
Line(200,300,150,300);
Line(150,300,210,250);
Line(210,250,180,250);
Line(180,250,220,200);
Line(220,200,260,250);
Line(260,250,230,250);
Line(230,250,300,300);
Line(300,300,250,300);
Line(250,300,350,400);
Line(350,400,100,400);
FloodFill(115,390,clGreen);  {заливка области зеленым цветом с точки (115;390)}
SetBrushColor(clBrown);{устанавливаем коричневый цвет кисти}
Rectangle(212,400,232,500); {закрашенный прямоугольник внизу зеленой части елки}
SetPenColor(clNavy);  {установка цвета пера — темно-синий цвет}
SetBrushColor(clBlue);{устанавливаем синий цвет кисти}
Rectangle(280,450,330,500);   {синий домик}
SetBrushColor(clSkyBlue);{устанавливаем голубой цвет кисти}
Rectangle(295,460,315,480);   {голубое окно}
Line(273,460,305,410);        {скат крыши}
Line(305,410,337,460);        {скат крыши}
FloodFill(305,415,clBlue);    {заливка крыши}
Rectangle(299,430,311,442);   {голубое окно на чердаке}
End.

Как рисовать объекты и графики функций с помощью циклов в программе Pascal ABC, можно посмотреть здесь.

Читайте также:  Как построить дом на чукотке

Источник