Wie kann ich überprüfen, ob ein Polygon einen Kreis mit einem bestimmten Radius vollständig enthalten kann?


7

Wie kann ich überprüfen, ob ein Polygon (das auch unregelmäßig sein kann) einen Kreis mit einem bestimmten Radius vollständig enthalten kann? Ich möchte nicht wirklich einen Kreis innerhalb des Polygons zeichnen, sondern nur ein boolesches Ergebnis, ob es angepasst werden kann oder nicht. Ich benötige dies für eine Anwendung, die ich in Java entwickle. Beachten Sie, dass ich nicht nach dem beschrifteten Kreis suche, sondern nach dem größten Kreis, den ein Polygon enthalten kann. Ich nehme an, es kann mehrere Kreise mit derselben Fläche geben.

Könnte jemand einen Algorithmus oder ein Code-Snippet teilen (jede Sprache ist in Ordnung) oder mich zu einer relevanten Ressource führen?

Antworten:


8

Dies ist wahrscheinlich komplizierter als Sie es bevorzugen würden, aber: Berechnen Sie die Mittelachse, die sofort die größten Scheiben ergibt, die in das Polygon passen: Ihre Zentren sind Eckpunkte (Grad ) der Achse (siehe Abbildung unten).3

Chin, Francis, Jack Snoeyink und Cao An Wang. "Finden der Mittelachse eines einfachen Polygons in linearer Zeit." Discrete & Computational Geometry 21.3 (1999): 405 & ndash; 420.


          Medialax
          (Bild von Alexander Tsvyashchenko .)


Siehe auch Größter Kreis innerhalb eines nicht konvexen Polygons für einen Ad-hoc- Ansatz (dessen Richtigkeit ich nicht zu überprüfen versucht habe).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.