If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Трептене с ъглова скорост

Разбирането на понятията за осцилация, амплитуда и честота/период е необходимо често в курса за симулиране на поведения от реалния свят. Обаче има един малко по-лесен начин, по който можем да пренапишем предния пример, за да получим същия резултат. Да разгледаме отново нашата формула за осцилацията:
var x = amplitude * sin(TWO_PI * frameCount / period);
И да я напишем отново по малко по-различен начин:
var x = amplitude * sin(някаква стойност, която нараства бавно);
Ако се интересуваме от това да дефинираме с точност периода на осцилация по отношение на кадрите на анимацията, може би ще имаме нужда от формулата във вида, в който я написахме първоначално, но можем съвсем лесно да пренапишем примера, като използваме концепцията за ъглова скорост (и ускорение) от урока за Ъглово движение. Ако приемем, че:
var angle = 0;
var aVelocity = 0.03;
...в draw() можем да напишем просто:
angle += aVelocity;
var x = amplitude * sin(angle);
...където angle е нашата “някаква стойност, която нараства бавно”.
Ето и нашата модифицирана програма:
Само защото не използваме понятието за период директно, това съвсем не означава, че сме се отказали от него. В крайна сметка колкото по-голяма е ъгловата скорост, толкова по-бързо ще осцилира кръгът (и следователно ще намалява периодът). Всъщност броят на пътите, които трябва да се добавят към ъгловата скорост, за да се получи TWO_PI, е периодът или:
период = TWO_PI / ъглова скорост
Да разширим този пример още малко и да създадем обекта Oscillator. Сега да примем, че искаме да се получава осцилация, както по оста х (както е по-горе), така и по оста y. За да направим това, ще ни трябват два ъгъла, две ъглови скорости и две амплитуди (по една за всяка ос). Още една идеална възможност да използваме PVector!
Прочети кода в програмата по-долу:
Курсът "Компютърни симулации на физични явления" е производeн на "Природата на кода" от Даниел Шифман, използвана от Creative Commons Attribution-NonCommercial 3,0 Unported License.

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.