Wykrywanie kolizji: obiekt zaokrąglony

Zajmuję się tworzeniem gry Java (ale język dev naprawdę nie ma znaczenia), w tym zaokrąglone obiekty, takie jak kule lub krążki, a teraz pracują nad kolizjami. Używam timera, więc na każdej klatce sprawdzam, czy zdarzy się kolizja.

Oto wykres przedstawiający prawy górny fragment obiektu.

Środek obiektu jest reprezentowany przez punkt [0,0], jego promień wynosi 10 pikseli, a jednostki to piksele.

Teraz, jeśli mój obiekt (na przykład,obj_1) ma kształt kwadratu / rombu (niebieska linia), aby sprawdzić, czy jest inny (obj_2) zderza się z nim Po prostu muszę uzyskać ich współrzędne i sprawdzićMath.abs(obj_1.x - obj_2.x) + Math.abs(obj_1.y - obj_2.y) <= radius Będę wiedział, czy dojdzie do kolizji.

Ale problem jest trudniejszy w przypadku kształtu koła (czerwona linia), ponieważ zajmuje więcej miejsca i ta zajęta przestrzeń nie jest ograniczona linią prostą. Oczywiście będę musiał zaokrąglić niektóre wartości (na przykład na poprzednim wykresie, jeśli chcę sprawdzić kolizję wx = 2 Będę musiał zaokrąglić wartość y, która wygląda na 9,5 do 10). Ale po prostu nie mam pojęcia, jak uzyskać tę formułę. Każda pomoc będzie bardzo mile widziana.

questionAnswers(4)

yourAnswerToTheQuestion