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

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

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.

Источник

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

programm primer
uses graf, crt;
var grdriver,grmode:integer;
begin
grdriver:=detect
Init graph (grdriver,grmode,”);

repeat until keypresed;
clozegraph;
end.

– Ваша задача нарисовать точку.

(изображение см. выше)

Ответы учащихся:

PutPixel с английского дословный перевод
Поставить точку. Всем понятно? Вот!
Координаты точки и укажем цвет.
Проще оператора, поверьте, просто нет!
PutPixel (100,40,2);

Чтоб окружность нам нарисовать
Слово Circle следует набрать
В круглых скобках три числа укажем:
Точку центра – х и у, радиус покажем.
Circle (100,40,40);

Отрезок мы рисуем так:
line набираем – это ведь пустяк,
А дальше в круглых скобках отразим
Концов координаты. Помним! запятыми разделим!
Line (100,80,60,140);

Чтоб квадрат нарисовать
4 оператора не будем набирать!
Rectangle нам его поможет получить
Осталось лишь координаты диагонали определить.
Rectangle (60,0,140,80);

( pril1 и pril2 – 2 варианта электронного теста) Возможен бумажный вариант тестирования – Приложение 1

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

oge ege pascal c1 python small c small vb small 1 lazarus small php html small css small javascript small jquery ajax small prolog smallflash

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

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

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

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

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

1 50

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

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

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

1 51

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

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

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

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

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.

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

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

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

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

1 1 44

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.

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

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

Для того чтобы рисовать в Паскале всякие графики, линии, круги и т.д., нужен определенный модуль 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 – соответственно тип, образец и толщина линии.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компетенции личностного совершенствования:

Продолжительность: 45 минут

Вид урока: комбинированный урок систематизации изученного материала и изучения нового материала.

Формы работы: фронтальные, индивидуальные, групповые.

Технологии обучения: личностно-ориентированные, развивающие, здоровьесберегающие.

Оборудование: магниты 8 шт., зрительные тренажеры, карточки-задания, распечатка “Таблицы графических параметров”.

Ход урока

1. Организационный момент. 3 мин.

1) Проверка посещаемости и готовности класса к уроку.
2) Сообщение темы, целей и хода урока.

Сегодня в ходе урока мне бы хотелось поговорить с вами о событиях в жизни людей, над которыми не властно время, они навсегда останутся в памяти народной. Как вы считаете, какие события я имею в виду? Вы правы, таким событием является Великая Отечественная война 1941-1945 годов. Она вошла в историю нашей страны, в историю человечества как эпопея, небывалая по своим масштабам героизма на полях сражений, самоотверженного подвига народа на трудовом фронте. Тема войны всегда нас будет волновать – она принесла великую беду. Эта война унесла двадцать миллионов жизней нашего народа. В этом году мы будем праздновать 65-летие Великой Победы. Ребята, мы с вами не вправе забывать тех, кто отдал свою жизнь за наше будущее, за мир на Земле. Вы, наверное, знаете, что 7 мая на территории нашей школы будет открыта мемориальная доска в память о героях-карболитовцах. А вы знаете, чьи имена будут высечены на ней? Об этих людях мы сегодня с вами еще поговорим, но позже. А сейчас перейдем непосредственно к теме нашего урока “Машинная графика языка Паскаль”. Сегодня нам предстоит создать титульную страницу викторины о Великой Отечественной войне.

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

А на следующий урок в качестве домашнего задания я вам предлагаю продумать по 3 вопроса этой викторины. Это будет ваш первый опыт серьезного программирования. Помните, что наша работа будет коллективной, т.е. от вклада каждого будет зависеть конечный результат. Мы с вами выполним коллективный проект, с помощью которого в итоге любой желающий сможет на уроке истории проверить свои знания о Великой Отечественной войне.

2. Проверка знаний учащихся по теме “Машинная графика”; Устная работа. 7 мин.

Ответить на вопросы:

    Структура программы на Паскале.

programm primer
uses graf, crt;
var grdriver,grmode:integer;
begin
grdriver:=detect
Init graph (grdriver,grmode,”);

repeat until keypresed;
clozegraph;
end.

img1

– Ваша задача нарисовать точку.

(изображение см. выше)

Ответы учащихся:

PutPixel с английского дословный перевод
Поставить точку. Всем понятно? Вот!
Координаты точки и укажем цвет.
Проще оператора, поверьте, просто нет!
PutPixel (100,40,2);

Чтоб окружность нам нарисовать
Слово Circle следует набрать
В круглых скобках три числа укажем:
Точку центра – х и у, радиус покажем.
Circle (100,40,40);

Отрезок мы рисуем так:
line набираем – это ведь пустяк,
А дальше в круглых скобках отразим
Концов координаты. Помним! запятыми разделим!
Line (100,80,60,140);

Чтоб квадрат нарисовать
4 оператора не будем набирать!
Rectangle нам его поможет получить
Осталось лишь координаты диагонали определить.
Rectangle (60,0,140,80);

3. Компьютерное тестирование. 7 мин.

( pril1 и pril2 – 2 варианта электронного теста) Возможен бумажный вариант тестирования – Приложение 1

4. Объяснение нового материала

Закрасить область нам не сложно,
Лишь только б замкнута была.
Два друга нам помогут это сделать
FloodFill и SetFillStyle.

Первым на помощь идет SetFillStyle
Цвет краски и стиль выбирать помогает,
А следом за ним и FloodFill
Замкнутую область нужной краской залил.
SetFillStyle предполагает
Два параметра всего
Узор заливки и цвет
Таблица
на них прольет нам свет.

Затем FloodFill мы наберем
И в круглые скобки координаты точки поставим
Но это еще не все!
Цвет замкнутой линии компьютеру скажем.

Вы видите, что для закрашивания нам цвет границы будет необходим!
Добавим оператор, чтобы построить красную окружность setcolor (4), желтый квадрат setcolor(14) и синий треугольник setcolor (1).
Для закрашивания квадрата укажем SetFillStyle (1,14); FloodFill (100,40,14);

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

5. Физкультминутка 2 мин.

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

    SetBkColor (цвет) Шаг вперед Закрасить красный квадрат синим цветом.

Шаг назад
Поморгать
Поморгать
Приседание
Наклон вправо
Наклон влево

SetColor (цвет) Шаг назад Line (x1, y1, x2, y2) Руки вверх Circle (x, y, r) Руки в стороны Rectangle (x1, y1, x2, y2) Приседание SetFilleStyle (штриховка, цвет) Наклон вправо FloodFill (x, y, цвет границы) Наклон влево

6. Закрепление нового материала Практическая работа за компьютером 15 мин.

Сколько операторов нужно набрать, чтобы построить закрашенный прямоугольник? 4
Кто-нибудь из вас знает, какую награду мы сейчас с вами будем рисовать? Приложение 2.

Это звезда героя Советского Союза. Четверо карболитовцев удостоены этого звания. Одного из них вы хорошо знаете, его именем названа улица, на которой стоит наша школа. Кто это? Правильно, Владимир Илларионович Бондаренко. Звание Героя Советского Союза ему присвоили посмертно. Он участвовал в рейдах партизан по маршруту Брянск—Гомель, подрывал вражеские эшелоны. 6 ноября 1943 года группа подрывников соединения черниговских партизан, возвращаясь на базу после выполнения боевого задания, попала в засаду. Входивший в состав группы В.И. Бондаренко погиб в бою, прикрывая отход товарищей.

Источник

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