Урок 5

Меню

Урок 7

Урок 6.
Дополнительные возможности графики.

     Инструкция CIRCLE позволяет рисовать не только круги, а еще эллипсы и дуги. В полной форме она выглядит так:

CIRCLE (X,Y), радиус, цвет, начало, конец, аспект

     Начало и конец — это два угла, выраженные в радианах. Их значения определяют начальный и конечный углы рисуемой дуги и могут изменяться от -2п до 2п. Если значение углов неотрицательное, то рисуется только дуга. Если какой-нибудь из углов отрицательный, то дуга рисуется как для соответствующего положительного значения, но ее конец соединяется линией с центром круга (эллипса).

     Аспект используется при рисовании эллипса и определяет отношение полуосей по Х и по Y. Если аспект не задавать, то будет нарисована окружность (или дуга окружности). Если аспект меньше 1, то радиус определяет количество точек по X, иначе радиус — это количество точек по Y.

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

CIRCLE (X,Y), радиус, цвет, , , аспект

Пример программы, иллюстрирующей некоторые возможности инструкции CIRCLE.

SCREEN 12
С=15
REM дуги и сектора окружности
CIRCLE (100,100), 40, С
CIRCLE (200,100), 40, С, 1, 3. 14
CIRCLE (300,100), 40, C, 4.71, 2
CIRCLE (400,100), 40, С, —1,—5. 5
CIRCLE (500,100), 40, С, —5.5,—1
CIRCLE (600,100), 40, C, —1.5,4
REM дуги и сектора эллипсов для аспекта 0.5
CIRCLE (100,200), 40, С, , , 0.5
CIRCLE (200,200), 40, С, 1, 3.14, 0.5
CIRCLE (300,200), 40, C, 4.71, 2, 0.5
CIRCLE (400,200), 40, С, —1,—5.5, 0.5
CIRCLE (500,200), 40, С, —5.5,—1, 0.5
CIRCLE (600,200), 40, C, —1.5,4, 0.5
REM дуги и сектора эллипсов для аспекта 2
CIRCLE (100,300), 40, С, , , 2
CIRCLE (200,300), 40, С, 1, 3.14, 2
CIRCLE (300,300), 40, C, 4.71, 2, 2
CIRCLE (400,300), 40, С, —1,—5.5, 2
CIRCLE (500,300), 40, С, —5.5,—1, 2
CIRCLE (600,300), 40, C, —1.5, 4, 2
END

А это результат ее работы. Разберитесь, какая инструкция ри­сует какую фигуру.

    

    

    

 

Инструкция LINE имеет также сокращенную форму;

LINE —(X,Y) [ .цвет ]

     В этом случае линия рисуется из точки, в которой закончилось рисование по предыдущей инструкции, в точку (X,Y). Считается, что рисование заканчивается для:

PSET (X,Y) — в точке (X,Y);

LINE (X1,Y1) —(X2,Y2) - в точке (X2,Y2);

LINE —(X,Y) — в точке (X,Y);

CIRCLE (X,Y), R —в точке (X,Y);

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

SCREEN 9
RЕМ рисование трапеции
PSET (100,100), 5
LINE —(50,200), 5
LINE —(250,200), 5
LINE —(200,100), 5
LINE —(100,100), 5
END

     Напишите программу, которая по данному эскизу рисует стилизован­ный кленовый лист. На базе этой программы нарисуйте на экране флаг Канады.

Параметризованная графика

     При попытке нарисовать более-менее сложную картинку часто оказывается, что она выглядит не совсем так, как хотелось. Приходится «подправлять» координаты в многочисленных инструкциях графического вывода. При этом можно ошибиться в координатах и получить картинку еще хуже. Было бы лучше, если бы программа сама вычисляла нужные для рисования координаты. Для этого нужно только параметризовать картинку, т. е. указать формулы для вычисления необходимых координат через несколько исходных параметров.

     Посмотрим, как это можно сделать, например, для рисования такой картинки. Прежде всего надо договориться, какие параметры картинки мы выберем в качестве главных, чтобы затем по ним вычислять все остальные. Таких параметров должно быть не слишком много, иначе в них легко запутаться. Для нашей картинки можно предложить следующие параметры: длина и высота стены домика; высота крыши и длина, на которую она выступит «за стену», координаты центра домика, чтобы мы могли изображать его в разных местах экрана. Остальные величины можно выражать через данные, договорившись, например, что размер окна составляет 1/3 размера стены дома.

Программа рисования этого домика может выглядеть так:

SCREEN 12
REM задаем исходные параметры
А=60 : В=20
Н=50 : L=15
Х=100: Y=100
REM рисуем стену и окно
LINE (X-A,Y-B)-(X+A,Y+B),15,B
LINE (X-A/3,Y-B/3)-(X+A/3,Y+B/3),15,B
LINE (X-A/3,Y)-(X+A/3,Y),15
LINE (X,Y-B/3)-(X,Y+B/3),15
REM рисуем крышу
LINE (X-A,Y-B)-(X-A-L,Y-B),15
LINE -(X,Y-B-H),15
LINE -(X+A+L,Y-B),15
LINE -(X+A,Y-B),15
END

     Теперь, задавая различные значения параметров, можно получать на экране разные изображения домика

    

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

                   

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

         

         

Урок 5

Меню

Урок 7

Яндекс цитирования Rambler's Top100
Сайт создан в системе uCoz