Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
I .3. Графический режим. Оператор рисования точкиСтр 1 из 26Следующая ⇒
I.3. Графический режим. Оператор рисования точки
В графическом режиме на экран монитора выводится изображение (рисунок). Рисунок – это совокупность точек различного цвета. Эти точки называются пикселями. Экран монитора состоит из точек – пикселей. Каждая точка имеет определенный цвет и координаты. Отсчет координат производится из левого верхнего угла экрана. Экран делится на 480 точек по вертикали и 640 точек по горизонтали.
Для удобства определения координат можно использовать сетку.
При запуске среды QBasic экран монитора автоматически устанавливается в текстовый режим. Чтобы переключить экран в графический режим используется оператор SCREEN. Формат: SCREEN < номер графического режима> Номер графического режима указывает на то, на какое количество пикселей будет разбит экран. Для разбиения 640 х 480, удобно использовать 12-ый графический режим. Оператор: SCREEN 12. Любой пиксель может принимать один из 16 цветов. Для рисования точки определенного цвета используется оператор PSET. Формат: PSET (X, Y), C PSET – служебное слово, Х, У – координаты точки, С – цвет (число от 0 до 15).
Задание: Нарисовать созвездие большой медведицы.
Программа: CLS SCREEN 12 PSET(80, 240), 15 PSET(160, 160), 15 PSET(240, 160), 15 PSET(320, 160), 15 PSET(360, 240), 15 PSET(400, 320), 15 PSET(480, 320), 15 PSET(540, 200), 15 END Задания для самостоятельного решения: 1. Нарисовать созвездие Кассиопеи. 2. Нарисовать цветочек из точек.
3. Написать программу, выводящую на экран а) три точки горизонтально (расстояние между точками 20 пикселей) б) четыре точки по вертикали (расстояние между точками 10 пикселей) в) пять точек по диагонали (на одинаковом расстоянии друг от друга)
4. Определить координаты угловых точек и центра экрана, если бы он был разбит не 640 на 480, а: а) 240 на 80 б) 480 на 160. Результаты представить графически.
I.7. Оператор заливки
Для закраски замкнутых областей применяется оператор PAINT. Закрашивать можно только замкнутые области, ограниченные линиями одного цвета. Формат: PAINT (X, Y), C1, C2 PAINT – служебное слово X, Y – координаты любой точки внутри области C1 – цвет заливки C2 – цвет линий, ограничивающих область.
Задание: Нарисовать цветочек.
Программа: SCREEN 12 CIRCLE(240, 240), 80, 7 PAINT(240, 240), 1, 7 CIRCLE(320, 320), 80, 7 PAINT(320, 320), 1, 7 CIRCLE(400, 240), 80, 7 PAINT(400, 240), 1, 7 CIRCLE(320, 160), 80, 7 PAINT(320, 160), 1, 7 CIRCLE(320, 240), 40, 7 PAINT(320, 240), 14, 7 END Задания для самостоятельного решения: 1. Уменьшить цветочек из разобранного задания в 8 раз, но при этом оставить его в центре экрана.
2. Нарисовать вазу с мороженым. 3. Нарисовать «крейсер.
6. а) Написать программу, рисующую контур елочки (контур ветвей светло-зеленым цветом, контур ствола – серым)
б) Раскрасить елочку: крону зеленым цветом, ствол – коричневым. Дорисовать разноцветные шарики на елке (радиус верхнего шарика 20 пикселей, радиус нижнего – 25 пикселей). Цвета подобрать самостоятельно.
3*. Переместить елку максимально далеко в правый нижний угол экрана. 4. Написать программу, позволяющую нарисовать «паровозик». Цвета подобрать самостоятельно.
7. Самостоятельно разместить на сетке и нарисовать еловую веточку с игрушками.
Часть II II.1. Линейные алгоритмы Самое сложное в решении задачи - это составить алгоритм. Продумать цепочку операций, ведущих от исходных данных к искомым. Каждая очередная команда, должна быть полностью определена, ранее выполненными командами и исходными данными. " Нельзя выпить воды из стакана, если ее в стакане нет! " " Нет смысла выполнять команду с=а+b, если до этого значения a и b не определены". Часто бывает, что одну задачу можно решить с помощью разных алгоритмов. Поэтому, разработка алгоритма - дело сугубо творческое. Алгоритм - порядок действий, которые должен выполнить исполнитель, чтобы достигнуть результата решения задачи. Алгоритм должен быть конечен и понятен исполнителю. Линейный алгоритм - состоит из простых команд, выполняющихся последовательно, одна за другой (каждая записанная команда выполнится ровно один раз, строго по порядку). Задание: Напишите программу к решению задачи " Незнайка в первый день выучил Х английских слов. Во второй день они выучил в два раза больше, чем в первый, а в третий – на 30% больше, чем во второй. Сколько английских слов выучил Незнайка за 3 дня? " Решение: Для решения задачи, надо чтобы все данные были определены. Х - число переменное, его значение будем вводить. Чтобы найти, сколько слов выучил Незнайка за 3 дня, надо знать, сколько он выучил за каждый день, а затем сложить. Если мы знаем Х (выученные слова за первый день), то можем вычислить сколько слов было выучено за второй день. Обозначим второй день переменной D2, а третий D3. D2=2*X. D3 можно вычислить только тогда, когда вычислено D2. D3=D2+D2/100*30. Когда количество выученных слов за каждый день известно, можно приступать к поиску суммы. Программа: CLS PRINT" введи количество слов, выученное Незнайкой в 1 день" INPUT X D2=2*X D3=D2+D2/100*30 S=X+D2+D3 PRINT" за 3 дня Незнайка выучил", X, " слов" END Задания для самостоятельного решения: 1. Выполните задание на графику
1) Ваша задача нарисовать цветочек с розовыми лепестками, желтой серединкой и зелеными стебельком и листиком. Отметьте координаты центров окружностей. Отметьте координаты левого верхнего и правого нижнего углов прямоугольника, рисующего стебель цветка, если толщина стебля 4 пикселя.
Пронумеруйте действия так, чтобы получился алгоритм рисования цветка: Рисую стебель. Крашу части 1, 2, 3 в розовый цвет. Рисую окружности черным цветом. Крашу часть 4 желтым цветом. Рисую окружности каким-нибудь цветом. Крашу часть 5 зеленым цветом.
Напишите программу за компьютером и убедитесь в правильности. 2) Пусть центр левой окружности имеет координаты (х, у), а радиус окружностей имеет размер R. Какими тогда будут координаты центров окружностей? Определите координаты левого верхнего и правого нижнего углов прямоугольника, рисующего стебель цветка, если толщина стебля 4 пикселя, а длина равна двум радиусам. 3) Исправьте предыдущую программу, добавив ввод данных ( x, y, R) и заменив статичные координаты на переменные (то, что вы вычислили в задании 2). 2. Написать программу к решению задачи: " Даны длины трех сторон треугольника в сантиметрах. Найдите периметр треугольника".
3. Написать программу к решению задачи: " Свинка Нюша купила Х метров шелка. На пошив одного модного платья ей необходимо А сантиметров ткани. Остаток ткани она отдала Карычу на галстуки. Сколько платьев удалось сшить Нюше, и сколько сантиметров ткани она отдала Карычу? "
4. Написать программу к решению задачи: " С каждого квадратного метра грядки Крош собирает 2 ведерка морковки. Грядка имеет размеры А сантиметров в длину и В сантиметров в ширину. Сколько целых ведер морковки соберет Крош с грядки? Составьте программу, которая поможет Крошу решить эту задачу".
5. Напишите программу, которая запрашивает ввести цифру, а потом создает новое пятизначное число так, что эта цифра стоит в числе по середине, ее соседями являются нули, а по краям стоят цифры на единицу большие, чем данная цифра. Например: цифра=4, значит число=50405.
6. Напишите программу, к решению задачи. " В школе Х учащихся. Из них А - это девочки. Найти процент мальчиков в школе".
7. Разработайте алгоритм, к решению задачи: " В магазин «Мир музыки» пришло S покупателей. Из них b человек купили новый диск певицы Максим, a – диск Земфиры, 10 человек не купили ни одного диска. Сколько человек купили диски и Максим, и Земфиры? Напишите программу.
NEXT I
FOR, TO, STEP, NEXT – служебные слова. I, a, b и h – переменные, которые могут иметь и другие имена, но содержать должны только целые значения. Тело цикла – это операторы, которые будут повторяться. Если величина шага равна 1, то фрагмент команды STEP h можно не писать.
Переменную I, в данном контексте, называют параметром цикла, так как от того, сколько значений она примет, столько раз и повторится тело цикла. Значение параметра цикла нельзя изменять в теле цикла, иначе будет нарушена правильная работа оператора! Дословно команду можно перевести так: для каждого значения переменной I от числа a до числа b с шагом h делай операторы. Программа: CLS PRINT “введи высоту зигзага и цвет” INPUT h, c SCREEN 12 x=0 y=240 FOR I=1 TO 480\h LINE(x, y)-(x+h\2, y-h), c LINE -(x+h, y), c x=x+h NEXT I END Эту же программу можно написать иначе, взяв в качестве параметра переменную х, и взяв величину шага за h. CLS PRINT “введи высоту зигзага и цвет” INPUT h, c SCREEN 12 y=240 FOR x=0 TO 480 STEP h LINE(x, y)-(x+h\2, y-h), c LINE -(x+h, y), c NEXT x END Обратите внимание: - в первом варианте программы, параметр цикла отвечает за количество повторов и через каждый повтор его значение увеличивается на 1, при этом координата х увеличивается на величину h, чтобы начать рисование очередного зубца (для этого используется оператор x=x+h); - во втором варианте программы, параметр цикла отвечает не только за количество повторов, но и за координату начала рисования очередного зубца (через каждый повтор его значение увеличивается на h автоматически). Задания для самостоятельного решения: 1. Получить на экране цепочку из окружностей, касающихся друг друга. В результате экран принимает следующий вид: Радиус окружности вводится с клавиатуры. Окружностей должно получиться столько, сколько необходимо, чтобы опоясать весь экран от края до края. Окружности должны быть закрашены. 2. Получить цепочку ромбов. Ромбы расположены по центру, их количество зависит от размера. Ромбы раскрашенные.
3. Придумать свой вариант узора (не простой, интересный) и опоясать аналогично второй задаче им экран.
4. " Засадить грядку цветами".
WHILE условие работы цикла тело цикла WEND WHILE, WEND – служебные слова; Условие – строится по тому же принципу, что и в условном операторе, оно будет проверяться перед каждым шагом работы цикла. Если оно заведомо ложно, то и цикл не выполнится ни разу. Тело цикла – серия операторов, которая будет повторяться, пока условие работы не будет нарушено. В теле цикла обязательно должны быть операторы, выполнение которых влияет на изменение истинности условия, иначе цикл не остановится (произойдет зацикливание). Дословно конструкцию можно прочитать так: Пока условие истинно, выполняй тело цикла. Вернемся к заданию. Подведем итоги. Данные величины: R1 – радиус первого кружка; с1 – цвет первого кружка; R2 – радиус второго кружка; с2 – цвет второго кружка; Y – высота движения кружков; Решение: Х1=R1 – начало движения первого кружка; X2=639-R2 – начало движения второго кружка; X2-X1> R1+R2 – условие движения; С каждым шагом цикла при истинном условии, выполняются следующие действия: 1. изображаются кружки с центрами (Х1, Y) и (Х2, Y), радиусами R1 и R2, соответственно, и цветами с1 и с2, соответственно; 2. задерживаем изображение; 3. стираем; 4. Х1 увеличивается на шаг (возьмем шаг равный 1 пикселю); 5. Х2 уменьшается на аналогичный шаг; После выхода из цикла, координаты центра нового шара (Х1+R1, Y). Цвет определим с помощью условного оператора, сравнив с1 и с2. Программа: CLS PRINT “введите высоту движения, радиусы кружков и их цвета” INPUT Y, R1, R2, C1, C2 X1=R1 X2=639-R2 SCREEN 12 WHILE X2-X1> R2+R1 CIRCLE(X1, Y), R1, C1 PAINT(X1, Y), C1, C1 CIRCLE(X2, Y), R2, C2 PAINT(X2, Y), C2, C2 FOR W=1 TO 1000 NEXT W LINE (X1-R1, Y-R1)-(X1+R1, Y+R1), 0, BF LINE (X2-R2, Y-R2)-(X2+R2, Y+R2), 0, BF X1=X1+1 X2=X2-1 WEND X=X1+R R=R1+R2 IF R1> R2 THEN C=C1 ELSE C=C2 CIRCLE(X, Y), R, C PAINT(X, Y), C, C END
Приложения I.3. Графический режим. Оператор рисования точки
В графическом режиме на экран монитора выводится изображение (рисунок). Рисунок – это совокупность точек различного цвета. Эти точки называются пикселями. Экран монитора состоит из точек – пикселей. Каждая точка имеет определенный цвет и координаты. Отсчет координат производится из левого верхнего угла экрана. Экран делится на 480 точек по вертикали и 640 точек по горизонтали.
Для удобства определения координат можно использовать сетку.
При запуске среды QBasic экран монитора автоматически устанавливается в текстовый режим. Чтобы переключить экран в графический режим используется оператор SCREEN. Формат: SCREEN < номер графического режима> Номер графического режима указывает на то, на какое количество пикселей будет разбит экран. Для разбиения 640 х 480, удобно использовать 12-ый графический режим. Оператор: SCREEN 12. Любой пиксель может принимать один из 16 цветов. Для рисования точки определенного цвета используется оператор PSET. Формат: PSET (X, Y), C PSET – служебное слово, Х, У – координаты точки, С – цвет (число от 0 до 15).
Задание: Нарисовать созвездие большой медведицы.
Программа: CLS SCREEN 12 PSET(80, 240), 15 PSET(160, 160), 15 PSET(240, 160), 15 PSET(320, 160), 15 PSET(360, 240), 15 PSET(400, 320), 15 PSET(480, 320), 15 PSET(540, 200), 15 END Задания для самостоятельного решения: 1. Нарисовать созвездие Кассиопеи. 2. Нарисовать цветочек из точек.
3. Написать программу, выводящую на экран а) три точки горизонтально (расстояние между точками 20 пикселей) б) четыре точки по вертикали (расстояние между точками 10 пикселей) в) пять точек по диагонали (на одинаковом расстоянии друг от друга)
4. Определить координаты угловых точек и центра экрана, если бы он был разбит не 640 на 480, а: а) 240 на 80 б) 480 на 160. Результаты представить графически.
|
Последнее изменение этой страницы: 2019-03-30; Просмотров: 82; Нарушение авторского права страницы