Jeśli mam punkt, który chcę trafić na końcu lub podczas łuku parabolicznego, jak mam obliczyć potrzebną prędkość xiy?
20
Jeśli mam punkt, który chcę trafić na końcu lub podczas łuku parabolicznego, jak mam obliczyć potrzebną prędkość xiy?
Odpowiedzi:
Paraboliczna funkcja trayectory jest zdefiniowana jako:
Znane wartości:
Nieznane wartości:
Aby obliczyć „Vo”, możemy nadać wartości funkcji F:
Możesz teraz uzyskać wszystkie wartości, aby osiągnąć cel od początku, podając wartości t do równania F:
źródło
Niedawno musiałem rozwiązać podobny problem, wymyśliłem dwa rozwiązania oparte na formule, którą znalazłem na stronie wikipedii „Dan the Man”, o której już wspominałem: trajektoria pocisku
W tym rozwiązaniu faktycznie potrzebujesz stałego kąta startu lub prędkości x. Prędkość Y nie jest potrzebna, ponieważ wystrzeliwujemy pocisk pod określonym kątem.
Rozwiązanie 1, kąt startu jest stały, obliczyć prędkość:
Rozwiązanie 2, prędkość jest stała, oblicz kąt startu:
W moim przypadku te rozwiązania działały całkiem dobrze.
źródło
Jeśli nie obchodzi cię, czy jest to poprawne matematycznie, wystarczy, że wygląda wystarczająco poprawnie, oblicz prostą ścieżkę i spraw, aby pocisk podążał tą ścieżką, ale „popchnij ją w górę” wzdłuż normalnej linii w zależności od jej odległości w dół segment linii, więc unosi się, gdy zbliża się do środka segmentu i spada, gdy odchodzi od środka segmentu linii.
Możesz użyć do tego fali sinusoidalnej, używając zakresu stopni od -90 do +90 (gdzie -90 to lewy punkt na segmencie linii, 90 to prawy punkt, a ty lerp na środku) i pomnóż wynik przez stałą, aby zwiększyć skalę.
Jeśli potrzebujesz czysto poprawnej odpowiedzi matematycznej / fizycznej, to nie pomoże. Jeśli tego nie zrobisz, prawdopodobnie będzie to dla ciebie całkiem dobre!
Nie zapominaj, że w programowaniu gier chodzi o stosowanie złudzeń, które wyglądają poprawnie (i są tańsze w obliczeniach), zamiast realizmu.
źródło
Jeśli potrzebujesz czegoś, co jest w porządku i masz stałą prędkość, możesz użyć tej bardzo uproszczonej metody.
Odległość może być ujemna, ale nadal będzie działać, ponieważ kąt zależy również od odległości. Jeśli odległość jest ujemna, kąt, który należy dodać, jest również ujemny.
Będziesz musiał bawić się z DistanceFactor, aby znaleźć właściwą wartość. Zależy to od grawitacji i mocy pocisku. Powinien być blisko 1 podzielony przez maksymalną odległość, jaką pocisk może pokonać.
źródło