W jednym z moich projektów mam obszar gry w kształcie koła. Wewnątrz tego koła porusza się kolejny mały okrąg. Chcę, aby małe kółko nie poruszało się poza większym. Poniżej widać, że w ramce 2 małe kółko jest częściowo na zewnątrz, potrzebuję sposobu, aby przenieść je z powrotem tuż przed tym, jak ma zamiar wyjść na zewnątrz. Jak można to zrobić?
Potrzebuję też punktu kolizji wzdłuż łuku dużego koła, aby móc zaktualizować prędkość małego koła. Jak przejść do obliczenia tego punktu?
Przed przesunięciem małego koła przewiduję jego następną pozycję, a jeśli jest na zewnątrz, znajduję czas kolizji między t = 0 it = 1 (t = 1 pełny krok czasu). Jeśli mam czas kolizji t, to po prostu poruszam małym kółkiem podczas t zamiast kroku pełnego czasu. Ale znowu problem polega na tym, że nie wiem, jak wykryć, że w tym momencie dochodzi do kolizji dwóch kół i jednego z nich.
EDYTOWAĆ:
Przykład punktu kolizji (zielony), który chcę znaleźć. Być może zdjęcie jest trochę nie w porządku, ale masz pomysł.