Что можно нарисовать в паскале

Что можно нарисовать в паскале

В этом разделе сайта progmatem.ru для рисования различных геометрических фигур в Паскале нам нам понадобится среда PascalABC.Net или PascalABC. Будут также привены рабочие программы в средах Turbo Pascal и Free Pascal. Вообще Паскаль хорош тем, что позволяет не только писать простые и/или сложные консольные приложения, но и работать с формами (как в Delphi), а также создавать графические приложения с помощью подключаемого модуля GraphABC (аналог модуля graph в Turbo Pascal, Free Pascal). Ведь для того и создавалась среда PascalABC.Net – как учебное пособие при переходе на Delphi – более совершенную версию Object Pascal.

При работе с графическим окном нужно учитывать две особенности. Во-первых, начало координат – точка (0, 0) – находится не где-то посредине окна, а в левом верхнем углу. Вторая особенность связана с первой: положительное направление оси OY показывает не вверх, а вниз (OX направлена вправо). Как мы видим, система координат в графическом окне Pascal отлична от той, к которой мы привыкли в математике – т.н. правой системе координат, в которой ось OX направлена вправо, ось OY – вверх, а начало координат, как правило, всегда стоит где-то посредине окна. И к этой особенности надо привыкать.

Но что делать, если требуется нарисовать геометрическую фигуру или график функции в «нормальной», привычной для нас системе координат? Надо выполнить преобразование системы координат таким образом, чтобы точка (0, 0) находилась посредине окна (в любой нужной точке), а ось OY была направлена вверх. Стандартное преобразование в прямоугольной правой системе координат выглядит следующим образом:

Здесь x и y – координаты точки, в которую мы хотим перенести начало координат новой системы, x и y – координаты точки в старой системе, x1 и y1 – координаты точки в новой системе. Но поскольку ось OY в графическом окне Паскаля направлена вниз, то для её разворота вверх нужно, естественно, знак координаты y поменять на противоположный (вместо y поставить -y ). Таким образом, окончательно получим преобразование координат в графическом окне PascalABC.Net:

В результате последних преобразований вышеуказанная система координат будет иметь следующий вид:

Как мы видим, здесь начало координат перемещено в центр графического окна, а ось OY направлена вверх. В результате этого стали доступны не только положительные координаты, но также отрицательные.

Читайте также:  Проверить оплату налогов по инн физического лица

Напишем простую программу, демонстрирующую все вышесказанное. Для этого, забегая наперед, укажем три полезные в графическом режиме PascalABC.Net процедуры:

TextOut(x,y,s) – Вывод текста в графическое окно. При этом текст (строка s) записывается в прямоугольную область таким образом, что точка с координатами (x, y) находится в левом верхнем углу первой буквы;

Line(x1,y1,x2,y2) – Проводит отрезок от точки (x1, y1) до точки (x2, y2);

Circle(x,y,r) – Рисует окружность с центром (x, y) и радиусом r.

Программа рисует окружность относительно графического окна (x = 0, y = 0), а через 3 секунды эта окружность появляется относительно нарисованной в центре системы координат. Перепишите эту программу в среду PascalABC.Net и запустите. Вот, собственно, сам код:

Здесь необходимо сделать некоторые пояснения:

WindowWidth — ширина графического окна;

WindowHeight — высота графического окна (в пикселях);

ClearWindow — эта процедура очищает окно белым цветом;

sleep(ms) — задержка (пауза) на ms миллисекунд.

На следующей странице мы рассмотрим самое элементарное понятие в графике Паскаля – точки и пиксели, а также укажем полезные процедуры для работы с ними.

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

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

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

Подключение осуществляется в разделе описаний.

Формат подключения модуля GraphABC:

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

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

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

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

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

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

Цвета в PascalABC

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

Читайте также:  Интернет магазин на python

Рисунок в PascalABC

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

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

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


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

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

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

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

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

лабораторные работы и задачи по программированию и информатике, егэ по информатике

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

Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:

uses GraphABC; begin . end.

Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:

Управление цветом

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

  • SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
  • setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
  • либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));

или использовать для заливки:

  • FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).
  • После чего можно использовать процедуры для рисования геометрических фигур.

    clBlack – черный
    clPurple – фиолетовый
    clWhite – белый
    clMaroon – темно-красный
    clRed – красный
    clNavy – темно-синий
    clGreen – зеленый
    clBrown – коричневый
    clBlue – синий
    clSkyBlue – голубой
    clYellow – желтый
    clCream – кремовый
    clAqua – бирюзовый
    clOlive – оливковый
    clFuchsia – сиреневый
    clTeal – сине-зеленый
    clGray – темно-серый
    clLime – ярко-зеленый
    clMoneyGreen – цвет зеленых денег
    clLtGray – светло-серый
    clDkGray – темно-серый
    clMedGray – серый
    clSilver – серебряный

    Читайте также:  Сделать караоке диск самому

    Точки, отрезки и ломаные

    Для отображения точки в паскале используется процедура:

    SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color

    uses GraphABC; begin SetPixel(300,200,clred); end.

    Для рисования линии используется:

    Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2)

    uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end.

    Ломаные можно рисовать с помощью процедур MoveTo (x1, y1) и LineTo (x2, y2) .
    Процедуры работают в паре: MoveTo передвигает курсор в определенную точку, а процедура LineTo рисует линию с этой точки до точки, определенной параметром данной процедуры.

    uses GraphABC; begin . SetPenColor(clblue); MoveTo (x1, y1); LineTo (x2, y2); LineTo (x3, y3); LineTo (x4, y4); LineTo (x5, y5); end.

    Для установки размеров графического окна используется процедура

    SetWindowSize(ширина, высота)

    Рисование фигур

    uses GraphABC; begin Rectangle(50,50,200,200); end.

    uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end.

    Line(x1,y1,x2,y2);
    LineTo(x,y);

    uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end.

    uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end.

    uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end.

    Функция random для использования окраски

    * раскрасить круги случайным цветом

    Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:

    Программа будет выглядеть следующим образом:

    uses graphABC; var i, x1, x2, y1, y2, N: integer; h, x: real; begin x1 := 100; y1 := 100; x2 := 300; y2 := 200; N := 10; Rectangle (x1, y1, x2, y2); h := (x2 — x1) / (N + 1); x := x1 + h; for i:=1 to N do begin Line(round(x), y1, round(x), y2); x := x + h; end; end.

    Анимация в Паскале

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

    uses GraphABC; var x:integer; begin x:=40; repeat SetPenColor(clWhite); Circle(x,100,10); <Рисуем белую окружность>SetPenColor(clBlack); Circle(x,100,10); <Рисуем черную окружность>x:=x+1 <Перемещаемся немного направо>until x>600; end.

    Ссылка на основную публикацию
    Что делать если завис телефон андроид
    Что делать, если завис Андроид и не реагирует не на что? В этой статье мы посмотрим четыре простых способа как...
    Фум лента в стоматологии фото
    Автор: G. Freedman Перевод: Александр Зыбайло Автор: G. Freedman Перевод: Александр Зыбайло Ограничение количества цемента для фиксации и использование определенной...
    Функции жесткого диска в компьютере
    Жесткий диск, он же винчестер, является основным местом, где хранится вся информация. В отличие от оперативной памяти, он энергетически независим,...
    Что дают за рейтинговые бои
    В кои-то веки разработчики решили прислушаться к мнению игроков и ввести в Варфейс рейтинговые матчи. Теперь каждый игрок, достигший 26...
    Adblock detector