Как закрасить круг в паскале

Содержание
  1. Графика в Паскаль
  2. Графика в Паскаль
  3. Основные цвета в графических программах на паскале
  4. Рисование точки в Паскаль
  5. Рисование линии в Паскаль
  6. Рисование прямоугольника в Паскаль
  7. Рисование окружности в Паскаль
  8. Для вывода текста на экран в графическом режиме Паскаль
  9. Pascal: Занятие № 4 часть II. Графика в Паскале
  10. Графика в Паскале
  11. Управление цветом
  12. Точки, отрезки и ломаные
  13. Рисование фигур
  14. Функция random для использования окраски
  15. Анимация в Паскале
  16. Графика на Pascal. Основные процедуры (команды)
  17. Основные процедуры(команды)
  18. Установка цвета фона.
  19. Установка указателя вывода.
  20. Установка точки
  21. Рисование линий
  22. Окружность, эллипс, дуга, сектор
  23. Прямоугольник, закрашенный прямоугольник, параллелепипед
  24. Вывод текста в графическом режиме.
  25. Стиль вычерчиваемых линий, контуров
  26. Стиль и цвет заливки
  27. Стиль вывода текста
  28. Заполнение (закрашивание) произвольной замкнутой фигуры
  29. Очистка графического экрана
  30. Процедура FloodFill.

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

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

Основные цвета в графических программах на паскале

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: Занятие № 4 часть II. Графика в Паскале

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

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

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

1 49

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

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

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

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

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

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

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

1 50

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

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

1 51

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

[Название файла: L4_2task0.pas ]

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

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

1 52

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

1 1 31

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

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

1 53

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

1 11 13

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

1 55

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

[Название файла: L4_2task1.pas ]

[Название файла: L4_2task2.pas ]

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

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

[Название файла: L4_2task3.pas ]

[Название файла: L4_2task4.pas ]

[Название файла: L4_2task5.pas ]

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

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

1 1 44

[Название файла: L4_2task6.pas ]

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

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

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.

Источник

Графика на Pascal. Основные процедуры (команды)

В чем заключается вопрос: Как начать работать с графикой на языке Pascal. Основные процедуры(команды).

Сложность: средняя.

Сразу стоит сказать что если вы будите использовать для графики программу PascalABC, то эта статья вам не много не подойдет, за исключение нескольких процедур(команд). Для этой статьи могут использоваться программы Turbo и FreePascal.

Читайте также  Как завершить процесс через bat

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

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

Не надо сильно думать над этой строкой, она практически всегда одинакова. Но про неё расскажу. Как я и сказал это процедура используется для открытия графического режима. У неё 3 параметра:

Графический драйвер Константа режима Растр Палитра Число страниц
Имя Значение Имя Значение
Detect 0 Выбор драйвера автоматически
CGA 1 CgaC0 0 320*200 C0 1
CgaC1 1 320*200 C1 1
CgaC2 2 320*200 C2 1
CgaC3 3 320*200 C3 1
CgaHi 4 640*200 2 цвета 1
MCGA 2 McgaC0 0 320*200 C0 1
McgaC1 1 320*200 C1 1
McgaC2 2 320*200 C2 1
McgaC3 3 320*200 C3 1
mcgaMed 4 640*200 2 цвета 1
McgaHi 5 640*480 2 цвета 1
EGA 3 EgaLo 0 640*200 16 цвет. 4
EgaHi 1 640*350 16 цвет. 2
VGA 9 VgaLo 0 640*200 16 цвет. 2
VgaMed 1 640*350 16 цвет. 2
VgaHi 2 640*480 16 цвет. 1

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

Если напишете так, будет ошибка:

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

Основные процедуры(команды)

Установка цвета.

Имя константы Номер цвета Цвет
Black 0 Черный
Blue 1 Темно-синий
Green 2 Темно-зеленый
Cyan 3 Бирюзовый
Red 4 Красный
Magenta 5 Фиолетовый
Brown 6 Коричневый
LightGray 7 Светло-серый
DarkGray 8 Темно-серый
LightBlue 9 Синий
LightGreen 10 Светло — зеленый
LightCyan 11 Светло-бирюзовый
LightRed 12 Розовый
LightMagenta 13 Малиновый
Yellow 14 Желтый
White 15 Белый

Например цвет линий которые будут отображаться на экране можно задать так:

Установка цвета фона.

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

Если процедура установки цвета фона не вызвана, экран будет черным.

Установка указателя вывода.

Процедура MoveTo ( x, y: integer) перемещает указатель в точку с координатами x, y.

Процедура MoveRel ( dx, dy: integer) перемещает указатель на dx, dy пикселей относительно последнего положения.

Функции GetX и GetY возвращают координаты x, y указателя вывода.

Установка точки

Процедура PutPixel ( x, y: integer; color: word) устанавливает точку с координатами ( x, y) и закрашивает ее указанным цветом color.

Функция GetPixel ( x, y: integer): word возвращает значение цвета, в который окрашена точка с координатами ( x, y).

Рисование линий

Процедура Line ( x1, y1, x2, y2: integer) вычерчивает линию между двумя точками экрана с координатами ( x1, y1) и ( x2, y2).

Процедура LineTo ( x, y: integer) вычерчивает линию от последнего положения указателя до точки с координатами ( x, y).

Окружность, эллипс, дуга, сектор

Процедура Circle ( x, y: integer; r: word) вычерчивает окружность радиуса r с центром в точке с координатами ( x, y).

Процедура Arc ( x, y, ugol_ begin, ugol_ end, r: integer) вычерчивает дугу окружности радиуса r с центром в точке с координатами ( x, y). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца дуги. Отсчет углов ведется против часовой стрелки. Значения угловых координат задается в градусах.

Процедура Ellips ( x, y: integer; ugol_ begin, ugol_ end, rx, ry: word) вычерчивает эллипс или дугу эллипса с центром в точке с координатами ( x, y). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца дуги. Параметры rx и ry определяют горизонтальный и вертикальный радиусы эллипса.

Процедура PieSlice ( x, y: integer; ugol_ begin, ugol_ end, r: word) вычерчивает сектор окружности радиуса r с центром в точке с координатами ( x, y ). Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца сектора.

Сектор может быть закрашен в соответствии со стилем, заданным процедурой SetFillStyle (о ней читайте ниже).

Процедура Sector ( x, y: integer; ugol_ begin, ugol_ end, rx, ry: word) вычерчивает сектор эллипса с центром в точке с координатами ( x, y) и горизонтальным радиусом rx, вертикальным — ry. Параметры ugol_ begin и ugol_ end задают угловые координаты начала и конца сектора.

Сектор может быть закрашен в соответствии со стилем, заданным процедурой SetFillStyle.

Прямоугольник, закрашенный прямоугольник, параллелепипед

Процедура Rectangle ( x1, y1, x2, y2: integer) вычерчивает контур прямоугольника. Параметры x1, y1 задают положение левого верхнего угла, x2, y2 – правого нижнего.

Процедура Bar ( x1, y1, x2, y2: integer) вычерчивает закрашенный прямоугольник. Параметры x1, y1 задают положение левого верхнего угла, x2, y2 – правого нижнего. Стиль и цвет заливки определяется процедурой SetFillStyle.

Процедура Bar3 D ( x1, y1, x2, y2: integer; глубина: word; граница: boolean) вычерчивает параллелепипед. Параметры x1, y1 задают положение левого верхнего угла, x2, y2 – правого нижнего угла ближней грани. Параметр глубина задает расстояние между передней и задней гранями в пикселях. Параметр граница определяет, нужно ли вычерчивать верхнюю границу задней грани параллелепипеда. Стиль и цвет заливки ближней грани определяется процедурой SetFillStyle.

Читайте также  Как восстановить свое психическое состояние

Вывод текста в графическом режиме.

Процедура OutText ( text: string) выводит строку символов text от текущей позиции указателя вывода и перемещает указатель в точку, расположенную за последним выведенным символом.

Процедура OutTextXY ( x, y: integer; text: string) выводит строку символов text, начиная с точки с координатами ( x, y), при этом указатель своего положения не меняет, т.е. остается в точке ( x, y ).

Стиль вычерчиваемых линий, контуров

Процедура SetLineStyle ( type, pattern, thick: word) устанавливает стиль вычерчиваемых линий. Здесь type, pattern, thick – соответственно тип, образец и толщина линии.

Тип линии может быть задан с помощью одной из следующих констант:

Параметр Pattern учитывается только для линий, вид которых определяется пользователем, т.е. если type=4. Во всех остальных случаях можно поставить любое значение типа word (но обязательно поставить, все-таки это параметр процедуры, значит должен быть).

Каким образом можно задать пользовательский тип линии? Под тип линии отводится переменная типа word, т.е. два байта. Эти два байта и определяют образец линии: каждый установленный в единицу бит этого слова соответствует светящейся точке, нулевой бит — несветящийся пиксель. Таким образом, задается отрезок линии длиной в 16 пикселей. Этот образец периодически повторяется по всей длине линии.

Параметр thick может принимать одно из двух значений:

Стиль и цвет заливки

Процедура SetFillStyle ( style, color: word) устанавливает стиль и цвет заливки (закрашивания) областей ( Bar, Bar3 D, Sector и др.). В качестве параметра style используют одну из констант:

Стиль вывода текста

Процедура SetTextStyle ( font, orient, size: word) устанавливает шрифт font, ориентацию orient и размер size текста, выводимого на экран. Параметр font может принимать одну из констант:

В 7.0 версии Паскаля набор шрифтов значительно расширен, но для новых шрифтов не придуманы мнемонические константы, поэтому можно использовать такие номера шрифтов:

Замечание: все шрифты, кроме стандартного (матричного), являются векторными, что позволяет изменять их размеры без ухудшения качества. Каждый из этих шрифтов размещается в отдельном файле. Для использования этих шрифтов необходимо разместить соответствующий файл в рабочем каталоге, в противном случае вызов этого шрифта игнорируется и подключается стандартный шрифт.

Параметр orient задает ориентацию выводимого текста:

Каждый шрифт способен десятикратно изменять свои размеры. Размер шрифта задается параметром size, который может иметь значения от 1 до 10 (точечный или матричный шрифт – в диапазоне от 1 до 32).

Заполнение (закрашивание) произвольной замкнутой фигуры

Процедура FloodFill ( x, y: integer; border: word) заполняет произвольную замкнутую фигуру, используя текущий стиль и цвет заполнения. Координаты точки ( x, y ) указывают, начиная с какой точки будет производиться заливка. Если точка находится внутри замкнутой фигуры, то будет закрашена внутренняя область. Если фигура не замкнута, то заливка разольется по всему экрану. Параметр border указывает цвет граничной линии.

Очистка графического экрана

Процедура ClearDevise очищает графический экран, устанавливает указатель в левый верхний угол.

Сразу вы естественно это не поймёте, нужна практика и еще раз практика иначе не как. Удачи. Спасибо за внимание.

Источник

Процедура FloodFill.

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

Строка №19. Устанавливаем красный цвет для окружности.

Строка №20. Устанавливаем тип и цвет закраски.

Строка №21. Рисуем окружность.

Строка №22. Устанавливаем зеленый цвет для 2-ой окружности.

Строка №23. Рисуем 2-ую окружность.

Строка №24. Процедура FloodFill закрашивает замкнутую область. Первые 2 параметра являются координатой и определяют, какая область будет закрашена. В нашем примере эти параметры имеют значения 150 пикселей,150 пикселей. Эта точка входит в обе окружности, которые мы нарисовали. Поэтому какая-то из этих окружностей будет закрашена. Какая именно – зависит от 3-го параметра процедуры. Он определяет цветовую границу закраски. В нашем примере этот параметр равен 2, т.е. имеет зеленую цветовую границу. Поэтому будет закрашена зеленая окружность (та, что в строке №23).
Тип и цвет закраски установлен в строке №20.

Grafika%20v%20pascal,%20floodfill

Grafika%20v%20pascal,%20floodfill.

Теперь поменяем строку №24, установив в качестве цветовой границы красный цвет (строка №24 будет иметь вид FloodFill (150,150, 4)). После этих изменений границей закраски будет красная окружность.
После запуска программы получится:

Grafika%20v%20pascal,%20floodfill

Если первые 2 параметра будут иметь другие координаты, которые выходят за пределы окружностей, то закрашена будет вся область, которая лежит за пределами окружностей.
Изменим строку №24 на такую: FloodFill(300,300, 4). В результате, будет закрашена область, лежащая за пределами обоих окружностей. Причем границей закраски будет красная окружность.

Grafika%20v%20pascal,%20floodfill

Теперь изменим строку №24 на такую FloodFill(300,300, 2). В результате будет закрашена область, лежащая за пределами зеленой окружности.

Grafika%20v%20pascal,%20floodfill

Если в качестве 3-го параметра указать несуществующую цветовую границу, то будет зарисован весь экран. Например, запишем строку №24 в таком виде FloodFill (300,300, 1). Здесь в качестве цветовой границы указан синий цвет, но в нашей программе нет замкнутых областей, имеющих синюю границу, поэтому будет зарисован весь экран.

Источник

Своими силами
Adblock
detector