Нарисовать машину в паскале abc

Нарисовать машину в паскале abc

В этом уроке будет показано, как можно создать анимированное изображение с помощью модуля GraphABC.

В качестве примера создадим движение нескольких (примитивных) фигур по заданной траектории.

Без чего мы обойтись не сможем, не сможем мы обойтись без нескольких инструментов:

Процедура LockDrawing;

Рисование средствами PascalABC происходит очень медленно. Пока оно идет, картинка на экране успевает много раз обновиться. Отсюда мерцание. То есть, мы видим не окончательную картинку, а процесс ее рисования. Окончательную картинку в общем-то не видим — как только она построилась, мы ее тут же стираем и начинаем новый цикл рисования. Для борьбы с этим эффектом придумали двойную буферизацию. Идея в том, чтобы сначала построить картинку в памяти (не выводя на экран), а затем отобразить новый кадр на экране целиком, без промежуточных вариантов, где не хватает половины лучиков. Для этого в начале программы вызываем процедуру LockDrawing.

Процедура ClearWindow (color);

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

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

Redraw;

Эта процедура вызовет перерисовку всей картины.

Нарисуем сначала четыре окружности.

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

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

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

Для работы с графикой в 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.

    В этом разделе сайта 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 миллисекунд.

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

    Ссылка на основную публикацию
    Мультиварка тефаль с керамической чашей
    Компания Tefal получила свою «порцию» славы в середине 20 века, в 1954 году. В то время рынок кухонных принадлежностей изобиловал...
    Можно ли заряжать айфон зарядкой от андроида
    Могу ли я заряжать Зарядка iPhone от iPad: полезные советы Технологии давно стали неотъемлемой частью повседневного ношения почти всех. Компьютеры,...
    Можно ли вычислить человека через вк
    Этот вопрос мы получаем на Email адрес нашей обратной связи чуть ли по несколько раз на день. Люди хотят знать,...
    Мультимедийная система лада приора
    Пассивный корпусный сабвуфер Pioneer TS-WX254, максимальная мощность 1100Вт (345*325*365) Артикул: 99999002544602 Рекомендованная цена: 7 993 руб Автомобильная магнитола 1DIN Pioneer...
    Adblock detector