Как сделать картинку на паскале
Графика Pascal
В Pascal ABC для работы с графикой отвечает модуль GraphABC. Для его подключения применяется следующий код:
Система координат в Pascal соответствует экранной системе координат. Вот как она выглядит:
Как управлять цветом
Чтобы использовать цвет, нужно применять его инструменту перо:
Устанавливает цвет пера, который создает параметр color. | SetPenColor(color) |
Устанавливает цвет кисти, который задается параметром color. | setBrushColor(color) |
Для палитры RGB или для заливки. | SetPenColor(rgb(0-255, 0-255, 0-255)) |
Заливает область одного цвета, заданным color с точки (х, у). | FloodFill(x,y,color) |
Затем можно использовать процедуры для рисования различных геометрических фигур.
Основные процедуры (команды)
Номер цвета | Имя константы | Цвет |
0 | Black | Черный |
1 | Blue | Темно-синий |
2 | Green | Темно-зеленый |
3 | Cyan | Бирюзовый |
4 | Red | Красный |
5 | Magenta | Фиолетовый |
6 | Brown | Коричневый |
7 | LightGray | Светло-серый |
8 | DarkGray | Темно-серый |
9 | LightBlue | Синий |
10 | LightGreen | Светло — зеленый |
11 | LightCyan | Светло-бирюзовый |
12 | LightRed | Розовый |
13 | LightMagenta | Малиновый |
14 | Yellow | Желтый |
15 | White | Белый |
К примеру, цвет линий на экране можно задать следующим образом:
Установка цвета фона
Для того чтобы установить цвет фона всему экрану, применяется следующая процедура:
Внимание! Если она не вызвана, то экран будет черным.
Точки, отрезки и ломаные
В Pascal для отображения точки используется процедура:
SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
Для рисования линии применяется:
Line(x1,y1,x2,y2) — рисует отрезок с началом (x1,y1) и концом в x2,y2
Для рисования ломаных линий применяются следующие процедуры: MoveTo (x1, y1) и LineTo (x2, y2).
Процедуры работают вместе: MoveTo передвигает курсор в необходимую точку, а процедура LineTo рисует линию с данной точки до точки, определенной параметром этой процедуры.
usesGraphABC;
begin
…
SetPenColor(clblue);
MoveTo(x1, y1);
LineTo(x2, y2);
LineTo(x3, y3);
LineTo(x4, y4);
LineTo(x5, y5);
end.
Задание. Нарисовать квадрат и равносторонний треугольник с помощью SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1).
Для установки размеров графического окна применяется процедура
Рисование фигур
Прямоугольник в Pascal рисуется:
Rectangle(x1,y1,x2,y2) — рисует прямоугольник с координатами противоположных вершин (x1,y1) и (x2,y2).
Фигуры с заливкой:
usesGraphABC;
begin
Rectangle(50,50,200,200);
FloodFill(100,100,clBlue);
end.
Треугольник рисуется процедурами:
usesGraphABC;
begin
setpenwidth(20);
setpencolor(clred);
moveTo(300,100);
lineTo(500,300);
lineto(100,300);
lineto(300,100);
floodfill(300,200,clgreen);
end.
С помощью данной процедуры можно нарисовать окружность:
Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
Дуга окружности
Arc(x,y,r,a1,a2) — позволяет нарисовать дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
Задача 1: «Лягушка»
Задача 2: «Корона»
Функция random для использования окраски
SetPenColor (rgb(random(256), random(256), random(256))); — выбирает рандомное число из 256-цветной палитры для цветов: красного, зеленого и синего.
Задача 4: «Круги на воде».
Условие: Нарисуйте несколько десятков концентрических окружностей (окружностей разного радиуса с общим центром).
Задача 5: Воспроизвести изображение с помощью приложения:
Штриховка
Нарисовать штриховку на Pascal можно, применяя процедуры рисования прямоугольника и линии:
В результате получится следующий код:
usesgraphABC;
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:=1to N dobegin
Line(round(x), y1,round(x), y2);
x := x + h;
end;
end.
Анимация в Паскале
Анимация в Pascalсостоит в том, что первым рисуется фигура цветным инструментом, после чего с такими же координатами рисуется та же фигура белым цветом. Затем происходит сдвиг фигуры. И так действия повторяются.
Воспроизвести движение круга по горизонтали. Пример:
Задача 6: Создать анимацию движения квадрата по заданной траектории:
А как у вас обстоят дела с графикой в Pascal? Поделитесь своим опытом, оставив комментарий.
Графика в Паскаль
Графика в Паскаль
Основные цвета в графических программах на паскале
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
Рисование точки в Паскаль
Пример программы в паскаль рисование красной точки
uses GraphABC;
begin
setWindowSize(500, 500);
putPixel(30, 30, clRed);
end.
Рисование линии в Паскаль
line(x1, y1, x2, y2) x1, y1 это координаты начала линии, x2, y2 координаты конца линии.
Пример программы в Паскаль рисование линии
uses GraphABC;
begin
setWindowSize(500, 500);
line(30, 30, 40, 40, clBlue);
end.
Рисование прямоугольника в Паскаль
rectangle(x1, y1, x2, y2) x1, y1 это координаты первой точки, x2, y2 координаты второй точки.
Рисование окружности в Паскаль
drawcircle(x, y, r) где x и y это координаты центра окружности, r это радиус окружности.
пример программы на Паскаль рисование окружности
uses GraphABC;
begin
setWindowSize(500, 500);
drawcircle(47, 47, 10);
end.
Для того,чтобы нарисовать закрашенный круг используется набор команда
SetBrushColor(цвет заполнения круга);
SetPenColor(цвет границы);
cirlce(x, y, r) где x и y это координаты центра круга, r это радиус круга
Пример программы на паскаль для рисования закрашенного круга
uses GraphABC;
begin
setWindowSize(500, 500);
SetBrushColor(clGreen);
SetPenColor(clRed);
circle (100,100,50);
end.
Пример программы в паскаль рисование дуги и сектора
uses GraphABC;
begin
setWindowSize(500, 500);
arc(10, 200, 50, 0, 60);
pie(10, 300, 50, 0, 60);
end.
Для вывода текста на экран в графическом режиме Паскаль
Пример программы на паскаль рисование закрашенного прямоугольника
Полезно почитать по теме графика в паскаль
Построение графических изображений средствами языка программирования Pascal
Оборудование: проектор, экран.
I. Подготовка к изучению нового материала через повторение и актуализацию опорных знаний
1. Повторение:
Обучающимся задаются вопросы, ответ нужно записать на доске по необходимости.
7. Символьные величины.
2. На проверку усвоения служебных слов выполнить кроссворд.
У каждого на рабочем столе компьютера находится раздаточный материал
Слова по горизонтали:
1. Служебное слово оператора цикла с предусловием.
2. Вещественный тип данных.
3. Операция, с помощью которой можно определить предыдущий по номеру символ.
5. Раздел описания переменных начинается со слова.
6. Эта операция доступна только для целых чисел.
7. С этого слова начинается условный оператор.
8. Открывающий операторную скобку.
9. Символьные переменные описываются с помощью этого слова.
10. Если логическое выражение истинно, то выполняется группа операторов, стоящих после этого служебного слова.
11. Это слово является частью оператора для двух видов цикла.
12. Смысл этого слова –»повторять».
Слова по вертикали:
1. Положительные 16-разрядные числа описывают с помощью этого служебного слова.
3. С этого слова начинается текст программы.
4. Тип данных, предназначенный для работы с большими целыми числами.
9. Постоянные величины определяют после этого служебного слова.
13. Конец текста программы.
14. Это слово присутствует только в полной форме условного оператора.
15. Отрицание.
16. for…do.
Ответы
3. Повторить назначение операторов графики по заготовленным карточкам.
Для отработки теоретических знаний, выполняется задание №4.
4. Найди ошибку в программе, исправь её и запусти программу.
Программа выполняет следующее изображение:
Файл oshibka.pas – раздаточный материал на рабочем столе компьютера.
Program oshibka;
Uses Graph, CRT;
Var gd, gm: integer;
Begin
gd:= 0;
InitGraph (gd, gm, ‘C:/BP/BGI’)
SetColor(15);
rectangle (100,600,530,370);
SetFillStyle (1,3); FloodFill (320,240,15);
SetColor(4)
Cirkle (320,240,50);
SetFillStyle (1,5); FloodFill (320,240,15);
Readln;
CloseGraph;
End.
Правильный ответ:
Program oshibka;
Uses Graph, CRT;
Var gd, gm: integer;
Begin
gd:= 0;
InitGraph (gd, gm, ‘C:/BP/BGI’);
SetBkColor (3); (установка цвета фона)
SetColor(15);
rectangle (100,100,530,370); (координаты точек прямоугольника)
SetFillStyle (1,3); FloodFill (320,240,15);
SetColor(4); (отсутствие «;»)
Circle (320,240,50); (ошибка в идентификаторе)
SetFillStyle (1,5); FloodFill (320,240,4); (цвет до которого будет производиться заливка)
Readln;
CloseGraph;
End.
5. Проверка выполнения домашнего задания
Ввести в компьютер программу домашнего задания, взяв за основу файл oshibka.pas
1) Построение ракушки.
Program line; Uses Graph, CRT; Var x, y, gd, gm: integer; Begin gd:= 0; InitGraph (gd, gm, ‘C:/BP/BGI’); setcolor(6); for i:=1 to 10 do circle(20*i,240,20*i); for i:=1 to 10 do circle(320,8*i*2,10*i); ReadKey; CloseGraph; End. | 2) Построение случайных линий
|