Тема: створення комп’ютерної моделі процесу взаємопов’язаного функціонування двох чи більше об’єктів мовою C#.
Мета:
навчити створювати комп’ютерну модель процесу взаємопов’язаного функціонування двох чи більше об’єктів у середовищі C#;
вдосконалити вміння визначати зв'язки між об'єктами, представляти їх у нових взаємозв'язках;
ознайомити учнів з елементами керування та їхнім призначенням;
навчитись змінювати властивості елементів керування;
формувати обізнаність про можливості ПК як інструменту навчально-пізнавальної діяльності.
Після виконання практичної роботи учень
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
2. Актуалізація опорних знань
Пригадати деякі факти з математики й фізики, необхідні для побудови комп'ютерної моделі взаємодії кількох дисків (куль), які рухаються у межах прямокутника (прямокутного паралелепіпеда), відбиваючись від його стінок і злипаючись у момент дотику в одну. Для моделі плоских фігур (дисків) в усіх формулах нижче потрібно вилучити вирази з аплікатою z.
Відстань між точками A(xA , yA , zA) i B(xB , yB , zB) дорівнює такому виразу:
де піднесення до степеня 1/2 означає видобування арифметичного (невід'ємного) кореня квадратного.
Координати C(xC , yC , zC) середини відрізка з кінцями A(xA , yA , zA) i B(xB , yB , zB) задовольняють такі рівності:
які еквівалентні таким:
Рівномірний прямолінійний рух матеріальної точки у 3-вимірному означає таку зміну координат з плином часу t:
де:
x(t), y(t), z(t) — координати у момент часу t;
vx, vy, vz — сталі проєкції швидкості на осі координат.
Пружне відбивання від площини {x = a} матеріальної точки, яка, крім моменту удару, рухається рівномірно і прямолінійно, означає таке:
складова швидкості, перпендикулярна до площини відбивання, зберігає довжину, але змінює свій напрям на протилежний;
складова швидкості, паралельна площині відбивання, не змінюється після відбивання.
Внаслідок цього у довільний момент часу після відбивання відрізок, який сполучає відбиту і невідбиту точки:
Позначимо:
(x₀ , y₀ , z₀) — координати матеріальної точки, які б вона мала після моменту відбивання, якби самого відбивання не відбулося;
vx , vy , vz — проєкції швидкості на осі координат матеріальної точки, які б вона мала після моменту відбивання, якби самого відбивання не відбулося.
Наступні перетворення формулами задають перехід від властивостей невідбитої до властивостей відбитої матеріальної точки:
Якщо замість матеріальної точки розглянути кулю радіуса r з координатами центра (x₀ + r, y₀ + r, z₀ + r), формули будуть такими самими, як і для матеріальної точки, крім формули для абсциси x. Маємо еквівалентність з відбиванням матеріальної точки, що збіється з центром кулі:
Заміною літер "x", "y", "z" з поданих вище формул можна отримати формули для відбивання від площини {y = a} або {z = a}.
Закони збереження маси й імпульсу класичної механіки при "злипанні" двох куль в одну призводять до справдження таких рівностей:
m = m1 + m2;
x = (m1 x1 + m2 x2) / m;
y = (m1 y1 + m2 y2) / m;
z = (m1 z1 + m2 z2) / m;
vx = (m1 v1x + m2 v2x) / m;
vy = (m1 v1y + m2 v2y) / m;
vz = (m1 v1z + m2 v2z) / m,
де:
m — маса кулі — результату "злипання";
m1 , m2 — маси куль до зіткнення;
x1 , y1 , z1 — координати центра кулі маси m1, якби вона не "злиплася" з іншою;
x2 , y2 , z2 — координати центра кулі маси m2, якби вона не "злиплася" з іншою;
x, y, z — координати центра мас системи двох куль — центру результату злипання;
vx , vy , vz — координати швидкості центра мас системи двох куль — центру результату злипання;
v1x , v1y , v1z — координати швидкості кулі маси m1 до зіткнення;
v2x , v2y , v2z — координати швидкості кулі маси m2 до зіткнення.
Для створення програмного втілення моделі взаємодії об'єктів буде використано такі відомості про бібліотеку Cairo (ознайомитися, перейшовши за посиланнями):
3. Інструктаж з ТБ
4. Вироблення практичних навичок
Завдання 1 Створити програму, що моделює рух кругів у межах прямокутної області з початковими випадковими розташуванням і швидкостями. При дотику до межі області круг відбивається як при пружному ударі. При дотику пари кругів вони зливаються в один круг, що має більший розмір. Вважати, що:
Вказівки до виконання
Змінити код на код моделі рівномірного прямолінійного руху круга поверх зображення field.png.
Змінити код для відображення руху зеленого круга на чорному тлі зліва направо посередині між верхньою та нижньою межами. Змінити назву вікна на : "Взаємодія об'єктів". Порівняти з очікуваним.
Кількість кругів та їхні розміри такі, щоб було легко наочно перевірити правильність моделювання пружного відбиття від меж. Порівняти з очікуваним.
Здійснити опис взаємодії-злипання кругів у методі move, виклик якого здійснює таймер. Вважати, що маса круга пропорційна його площі, тобто квадрату радіуса. Дотримуватися закону збереження імпульса. Змінити значення n i r на 23 і 8 відповідно.
5. Підбиття підсумків уроку
Виставлення оцінок.
6. Домашнє завдання
При потребі доробити програму. Змінити її, передбачивши злиття при дотику чи перетину кругів (на відміну від перетину квадратів, що містять круги, реалізованому у демонстраційному розв'язанні).
Завдання 2. Створити програму «Папуги», в якому є такі персонажі: Рудий Кіт та 6 папуг — по два червоного, жовтого та зеленого кольору. Папуги сидять по колу, їх занумеровано послідовними натуральними числами від 1 до 6. Рудий Кіт — у центрі кола. З інтервалом 3 секунди Кіт називає два різні випадкові натуральні числа у межах від 1 до 6 включно — номери папуг. Якщо ці папуги однакового кольору, нічого не відбувається. Інакше, якщо їхній колір різний, вони змінюють свій колір на один і той самий, який відмінний від кольору їх обох. Зображення знайти або виготовити самостійно. Повне розв'язання передбачає опис об'єктів, що відповідають персонажам, а таймер лише породжує події-повідомлення:
Опрацювання цих подій описати у класах, що описують папуг. Використати опис опрацювання подій, створених програмою, у розробці одного з попередніх уроків.
Текст упорядкував Олександр Рудик.