begin

SetFillStyle (l,Random(14)+l);

PieSlice (320,240,round (Ang), round (Ang+A[i]),230);

(Виведення на діаграмі числових значень)

Str (A[i]*Sum/360:3:0,S);

OutTextXY(round(320+120*coe((2*Ang+A[i]))*Pi/360),

round(240-120*ein((2*Ang+A[i])*Pi/360)),S);

Ang:=Ang+A[i];

end;

Readkey; CloseGraph; {Закриття графічного режиму)

end.

Домашнє завдання:

• повторити сторінки 221 - 229 запропонованого підручника;

• задачі №615,617,620.

УРОК 33. Методи створення мультфільмів

Мета уроку: показати створення рухомих графічних об’єктів та простих мультиплікаційних зображень засобами мови Паскаль.

Теоретичний матеріал

Щоб розпочати роботу над створенням найпростішого «мультика» (зображення, що рухається), спочатку розберемося, як воно створюється в реальних умовах. Всі знають, що художник мультиплікатор малює серію зображень, у кожному з яких показується один і той же рух з ледь помітними змінами. Тепер, якщо зображення швидко змінювати одне за одним, ми не помічаємо зміну малюнків, а бачимо рух цього персонажу. Поміркуємо, як відтворити послідовність схожих об’єктів на екрані монітору. Перше, що спадає на думку, це намалювати зображення, затримати його трохи на екрані, витерти зображення (очистити екран) та вивести нове зображення з ледь помітними змінами. При достатньо великій швидкості малювання око людини не помітить зміни малюнків і їй буде здаватися, що об’єкт рухається. Розв’яжемо таким методом наступну задачу.

ЗАДАЧА № 629

Умова: «Годинник». Змоделювати рух годинної та хвилинної стрілок.

Розв ‘язування: Якщо змоделювати роботу годинника в реальному часі, то наочність програми буде невеликою, тому що рух стрілок буде ледь помітним. Тому зробимо імітацію роботи годинника, тобто хвилинна стрілка буде рухатися достатньо швидко, а рух годинникової стрілки буде залежати від хвилинної. На початку роботи з’ясуємо, з яких елементів складається годинник. По-перше, це круг з поділками, а, по-друге, два відрізка різної довжини, що імітують стрілки (стрілки можна зробити і більш складними). Круг являється нерухомим об’єктом, тому він малюється статично з абсолютними координатами центру та радіусом, а стрілки рухаються, причому переміщується тільки один кінець стрілки-відрізка, а другий теж являється статичним (центр круга).

Формули, за якими обчислюються координати рухомого кінця стрілки, відомі учням з курсу математики (поворот точки на заданий кут відносно нерухомого центру з координатами(x0,y0):

x = x0+L*cos?

y = yo- L*sin?

де L - відстань, на якій знаходиться точка від центру повороту, а — кут, на який повертається точка.

Зверніть увагу тільки на те, що в програмі друга формула замість знаку «-» буде містити знак «+», тому що екранні координати мають направленість осей, зворотну до реальних декартових координат (на екрані значення координати Y збільшується в напрямку зверху вниз).

Малювання поділок на циферблаті виконується теж за допомогою вище наведених формул

Програма, що реалізує запропонований алгоритм, наведена нижче. Зверніть увагу, що в цій програмі L_min, L_time - довжини хвилинної та годинникової стрілок відповідно; Color_min, Color_time - кольори хвилинної та годинникової стрілок відповідно; R - радіус циферблату годинника; x_centr, y_centr - координати центра екрану (визначаються у відповідності до поточної роздільної здатності за допомогою функцій getmaxx та getmaxy; x_min, y_min - координати рухомого кінця хвилинної стрілки; x_time, y_time - координати рухомого кінця годинникової стрілки; Ang_min, Ang_time - кути повороту хвилинної та годинникової стрілок. Рух стрілок по циферблату здійснюється за рахунок постійного їх перемальовування то активним кольором малювання стрілки, то кольором тла («затирання» зображення). Програма завершується після натискання будь-якої клавіші за рахунок використання циклу repeat until keypressed.

Program Example_629;

Uses crt,graph; {Підключення бібліотек}

const L_min=174;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату