Ruch jest zmianą prędkości która jest wartością wektorową. W

Transkrypt

Ruch jest zmianą prędkości która jest wartością wektorową. W
Ruch
Ruch jest zmianą prędkości która jest wartością wektorową. W najprostszym przypadku
możemy zmieniać położenie o piksele, nie przejmując się wektorami, prędkością i przyspieszeniem.
Taki ruch jednak nie będzie najlepszy – mało płynny i nienaturalny.
Do opisu ruchu służy przede wszystkim prędkość. Prędkość jest stosunkiem przesunięcia
do czasu w jakim nastąpiło. Gdy na przykład obiekt przesunie się o jedną jednostkę w prawo i dwie
do góry, to wektor przesunięcia będzie równy (1 , 2).
v = ∆r / ∆t
Prędkość jako wektor mówi nam, jak szybko porusza się przedmiot oraz w jakim kierunku.
Do dobrego przedstawienia ruchu na ekranie potrzebne jest nam przyspieszenie. Jest to wektor
przedstawiająca zmianę prędkości następującą w określonym czasie:
a = ∆v / ∆t
Siła – jest to kolejna wielkość wektorową która warto znać. Siła działająca na ciało
powoduje zmianę jego prędkości. Jeżeli na ciało działa pewna stała siła to przedmiot porusza się z
przyspieszeniem równym:
a = F /m
Przyspieszenie jest wprost proporcjonalne do działającej na ciało siły – im większa siła tym większe
przyspieszenie i odwrotnie proporcjonalne do masy – im większa masa tym mniejsze
przyspieszenie.
Ruch sprężysty
Ciało o właściwościach sprężystych nazywamy sprężyną. Każda sprężyna ma określoną długość
(mierzona w spoczynku). Kiedy zadziała na nią siła (np. zawieszenie na niej jakiegoś obiektu)
spowodujemy zmianę jej długości. Wydłużeniem sprężyny w danej chwili nazywamy różnicę
obecnej długości sprężyny i jej długości w spoczynku.
Na ciało zawieszone na sprężynie działa siła której wartość jest proporcjonalna do wydłużenia
sprężyny a kierunek wektora siły wskazuje punkt zawieszenia sprężyny:
F = k * x;
gdzie:
F – siła
k – współczynnik sprężystości
x – wydłużeni
Współczynnik sprężystości jest różny dla różnych ciał – im ciało łatwiej rozciągnąć tym
współczynnik jest mniejszy.
Ruch po okręgu
Dotychczas rozpatrywaliśmy ciało na które działaliśmy siłą przyczepioną do środka jego
masy. Teraz rozpatrzymy sytuację w której na ciało będziemy działać siłą przyczepioną do różnych
miejsc, wprowadzając go w rotację.
Kiedy ciało porusza się po okręgu, to w każdej jednostce czasu zakreśla pewien kąt. Wartość
prędkości kątowej jest równa ilorazowi wartości kąta zakreślonego przez ciało i jednostki czasu, w
którym nastąpił ten ruch. Prędkość kątowa:
w = ∆a / ∆t
W ruchu po okręgu wyróżniamy dwie prędkości: liniową oraz kątową. Zależność między
tymi wielkościami opisuje wzór:
w = v/r
gdzie:
w – prędkość kątowa
v – prędkość liniowa
r – promień obrotu
Czyli prędkość liniowa wynosi:
v = w*r
Najprostszym przypadkiem ruchu obrotowego byłoby ciało zawieszone na lince,
poruszające się z pewną prędkością kątową. Aby opisać taki ruch nie potrzebujemy współrzędnych
ciała a jedynie kąt, długość liny oraz prędkość kątową.
W ruchu po okręgu także możemy mierzyć przyspieszenie (kątowe):
e = ∆w /∆t
gdzie
e – przyspieszenie kątowe
∆w – zmiana prędkości kątowej
∆t – zmiana czasu
Przykład prostej funkcji umożliwiającej obrót wokół pewnego okręgu:
void drawTri()
{
float m = 0; //wspolrzedna x okregu
float n = 0; //wspolrzedna y okregu
float r = 0.2; //;promien okregu
alpha +=omega; //zmiana kata
float h = r*sin(alpha); //wysokosc trojkata
float a = r*cos(alpha); //podstawa trojkata
coordY = n+h; //nowe wspolrzedne
coordX = m+a; //jw
coordY = coordY-0.001*sin(alpha);
coordX = coordX-0.001*sin(alpha);
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(coordX + 0.0f,
coordY+0.1f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(coordX + 0.087f, coordY-0.05f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f(coordX-0.087f,coordY-0.05f);
glEnd();
}
Projekt: Arkanoid!