Làm cách nào để kiểm tra xem một đa giác hoàn toàn có thể chứa một vòng tròn có bán kính nhất định không?


7

Làm cách nào để kiểm tra xem một đa giác (cũng có thể không đều) hoàn toàn có thể chứa một vòng tròn có bán kính nhất định không? Tôi không muốn thực sự vẽ một vòng tròn bên trong đa giác mà chỉ là một kết quả boolean cho dù nó có thể phù hợp hay không. Tôi cần điều này cho một ứng dụng mà tôi đang phát triển bằng Java. Lưu ý rằng tôi không tìm kiếm vòng tròn được ghi, nhưng vòng tròn lớn nhất mà đa giác có thể chứa. Tôi cho rằng có thể có nhiều vòng tròn với cùng một khu vực.

Ai đó có thể chia sẻ một thuật toán hoặc đoạn mã (bất kỳ ngôn ngữ nào cũng được) hoặc hướng dẫn tôi đến bất kỳ tài nguyên có liên quan nào không?

Câu trả lời:


8

Điều này có thể phức tạp hơn bạn muốn, nhưng: Tính toán trục giữa, cung cấp ngay các đĩa lớn nhất nằm trong đa giác: tâm của chúng là các đỉnh (độ ) của trục (xem hình bên dưới).3

Chin, Francis, Jack Snoeyink và Cao An Wang. "Tìm trục trung gian của một đa giác đơn giản trong thời gian tuyến tính." Hình học rời rạc & tính toán 21.3 (1999): 405-420.


          trung gian
          (Ảnh từ Alexander Tsvyashchenko .)


Xem thêm, Vòng tròn lớn nhất bên trong một đa giác không lồi cho cách tiếp cận đặc biệt (có tính chính xác mà tôi không cố gắng xác minh).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.