zmiana kierunku wektora prędkości obiektu i krążenie jego wokół punktu początkowego

0

Cześć,
Mam sobie obiekt, w którym poniższe zmienne reprezentują:
x, y - pozycja obiektu
vx, vy - prędkość obiektu
b - nie wiem co to jest, ale przypuszczam, że kierunek wektora prędkości
gdzie b = 0.05
i mam sobie takie kodziwo w wersji podstawowej:

x = Math.random();
y = Math.random();
vx = b*(Math.random() - Math.random());
vy = b*(Math.random() - Math.random());

W wersji podstawowej z każdym ruchem obiektu robię:

x += vx;
y += vy;

Teraz mam zrobić takie dwie wersje obiektu, że

  • z każdym ruchem ma się zmieniać trochę wektor prędkości obiektu (długość wektora ma zostać ta sama i mam wykorzystać funkcje trygonometryczne)
  • obiekt ma krążyć wokół punktu pocz.
    Nie mam pojęcia jak to za bardzo ugryźć, ktoś coś doradzi / pomoże? Czytałem trochę o wektorze prędkości i oglądałem, ale nie bardzo rozumiem co z czym sie je.
1

Po pierwsze poczytaj sobie o ruchu po okręgu, zapoznaj się ze wzorami, potem wektory, obliczanie wartości wektora z jego współrzędnych
Co do Twoich wzorów no to nie możesz tak wyliczać współrzędnych wektora prędkości, bo w ruchu po okręgu wektor prędkości jest styczny do tego okręgu, po drugie współrzędnych też nie możesz tak wyliczać bo jak możesz dodać prędkość do położenia? No chyba, że zakładasz, że ruch jest wykonywany co sekundę, ale to jednak powinieneś uwzględnić w tym wzorze, bo potem coś zmienisz i będzie źle działać.

Jak już ogarniesz ten wektor prędkości to liczysz omegę ( w ) czyli prędkość kątową

w = v/r

Musisz przyjąć sobie jakiś promień, a v obliczysz ze współrzędnych tego wektora (musisz poczytać jak to się robi, tam jest wzór pod pierwiastkiem
sqrt(vx^2 + vy^2)
Mając prędkość kątową możesz wyznaczyć kąt o jaki ten punkt się obraca

kat += w * dt

gdzie dt to różnica czasu między wcześniejszym, a teraźniejszym wyliczaniem kąta
no i na koniec należy wyznaczyć współrzędne czyli

x = cos(kat) * r + xC;
y = sin(kat) * r + yC;

gdzie: xC, yC - to wspólrzędne środka okręgu

1

No to skoro tamto masz podane jako wartości początkowe no to w takim razie pierwszą czynnością jaką musisz wykonać jest wyznaczenie współrzędnych środka okręgu, po którym będzie poruszał się pkt. Tak jak mówiłem wektor prędkości jest styczny do okręgu, więc musisz sobie ułożyć jakieś wzory co Ci to umożliwią (x,y to punkt zaczepienia tego wektora prędkości, a vx, vy to informacje o jego kierunku, zwrocie i wartości), no i założyć jakiś promień tego okręgu. Następnie pozycję pkt. na okręgu wyznaczysz dzięki wzorom, które napisałem Ci we wcześniejszym poście. Musisz policzyć kąt obrotu. Dodatkowo, żeby znaleźć nowe współrzędne wektora prędkości (przy zmianie położenia pkt. zmienia się również kierunek tego wektora, bo musi być styczny do tego okręgu) poczytaj sobie o obrocie wektora o kąt i ułóż odpowiednie równania, z których wyznaczysz vx i vy. (kąt obrotu wektora = kątowi przemieszczenia pkt.)

1 użytkowników online, w tym zalogowanych: 0, gości: 1