Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.DOC
Скачиваний:
23
Добавлен:
21.03.2015
Размер:
1.77 Mб
Скачать

Практическое задание n 1. 55

1. Составить процедуру рисования N - угольной звезды. В параметры процедуры включить число лучей звезды, радиусы вписанной и описанной окружностей, цвет линий и координаты центра звезды. Перемещать две звезды разного цвета в пределах экрана случайным образом.

2. Составить процедуру рисования N - угольной звезды,

где N= 3, 5, 7, ... Операторы рисования имеют вид:

M:=N div 2; Moveto(x[1],y[1]);

For i:=1 to N do begin j:=(M*i) mod N + 1;

LineTo(x[j],y[j]) end;

Перемещать две звезды разного цвета в пределах экрана.

Толщину и форму (стиль) линий отрезков прямых, прямоугольников, окружностей, эллипсов можно задать оператором

SetLineStyle(F, P, T);

Здесь F - форма линии из стандартного набора BGI:

F=0 - сплошная,

F=1 - пунктирная,

F=2 - штрих-пунктирная,

F=3 - штриховая.

F=4 - форма линии задается параметром Р. При F<4 значение Р игнорируется. Параметры F, P, T типа Word.

Стиль линии Р - число, двоичное представление которого отображает заполнение линии длиной 16 пикселов. Если разряд числа равен 1, то пиксел высвечивается, 0 - не высвечивается. Удобно использовать шестнадцатеричные числа. Например:

P = $35F1 = 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 ( двоичное )

отобразит стиль:

Можно использовать десятичную форму записи значения параметра "Р",

где 0<= P <= 65535= 216-1 .

T - толщина линии может принимать два значения:

T= 1 - тонкая (1 пиксел), T= 3 - толстая (3 пиксела).

Например, операторы: SetLineStyle(4, $5555, 3); Line(x1, y1, x2, y2); определяют толстую мелким пунктиром линию.

92

Практическое задание n 1. 55

1. Вывести на экран горизонтальные толстые линии с двоичным представлением:

1111000001100000, 1111000011110000, 0111101111011110,

1100110011001100, 1001100110011001, 1111100011111000.

2. Вывести на экран вертикальные толстые линии с двоичным представлением:

0101010101010101, 1100011000110001, 1111110011111100,

0111011101110111, 1110001110001110, 1111000000001111.

3. Вывести на экран линии разных форм, заданных параметром РN = PN-1 + 2 * N,

где P0= 1; N= 1, . . , 150 . Линии располагать вертикально.

4. Вывода на экран линий разных форм, заданных параметром РN = PN-1 + 2N,

где P0= 1; N= 1, . . , 15 . Линии располагать горизонтально.

5. Нарисовать расходящийся из центра экрана по спирали ромбический лабиринт шириной 6 пикселов из отрезков наклонных прямых. Очищать экран и менять толщину и форму линии F= 0, . . , 3.

6. Нарисовать расходящийся из центра экрана по спирали прямоугольный лабиринт шириной 5 пикселов из отрезков вертикальных и горизонтальных прямых. Очищать экран и менять толщину и форму линии.

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

P3 = P1 and P2 - линии из совпадающих единичных битов.

P3 = P1 or P2 - добавление единичных битов.

P3 = P1 xor P2 - обнуление совпадающих значений битов.

P3 = not P2 - изменение значений битов на противоположные.

Таблица результатов выполнения логической операции "xor" над битами.

( Таблица результатов выполнения

бит "A" операция бит "B" результат логических операций "or" и "and"

над битами приведена на стр. . )

1 xor 1 0

1 xor 0 1 Результат операции "A xor B" равен

0 xor 0 0 единице при различных значениях битов

0 xor 1 1 "A" и "B", иначе результат равен нулю.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]