Geçenlerde, çarpı poligonu ve daireyi işlemek için kullanılan stackoverflow üzerindeki kodu buldum ve işe yarıyor. Sorun şu ki, tam olarak anlamadım, bu yüzden birileri bana basit bir açıklama sunabilirse çok iyi olurdum.libGDX çokgen - daire çarpışması
// Check if Polygon intersects Circle
private boolean isCollision(Polygon p, Circle c) {
float[] vertices = p.getTransformedVertices();
Vector2 center = new Vector2(c.x, c.y);
float squareRadius = c.radius * c.radius;
for (int i = 0; i < vertices.length; i += 2) {
if (i == 0) {
if (Intersector.intersectSegmentCircle(new Vector2(
vertices[vertices.length - 2],
vertices[vertices.length - 1]), new Vector2(
vertices[i], vertices[i + 1]), center, squareRadius))
return true;
} else {
if (Intersector.intersectSegmentCircle(new Vector2(
vertices[i - 2], vertices[i - 1]), new Vector2(
vertices[i], vertices[i + 1]), center, squareRadius))
return true;
}
}
return false;
}
Bulamadığım kısım for döngüsüdür. (Ilk iki vektör bağımsız değişken tarafından belirtildiği gibi)
Dairenin çokgenin içinde olup olmadığını kontrol ettiğinizden emin olun. http://stackoverflow.com/a/29938608/2900738 –