Thật không may, tôi không may là tôi không thành công.
Có một tập hợp các hình chữ nhật và một hình chữ nhật . Sử dụng thuật toán quét mặt phẳng xác định xem có được bao phủ hoàn toàn bởi tập hợp . R 0 R 0 R 1 . . R n
Để biết thêm chi tiết về nguyên tắc của thuật toán quét dòng xem tại đây .
Hãy bắt đầu từ đầu. Ban đầu, chúng tôi biết thuật toán quét dòng là thuật toán tìm giao điểm phân đoạn dòng đòi hỏi hai cấu trúc dữ liệu:
- một tập hợp của các điểm sự kiện (nó lưu các điểm cuối của các đoạn và điểm giao nhau)
- một trạng thái (cấu trúc động cho tập hợp các phân đoạn mà đường quét giao nhau)
Ý tưởng chung: giả sử rằng đường quét là đường thẳng đứng bắt đầu tiếp cận tập hợp các hình chữ nhật từ bên trái. Sắp xếp tất cả các tọa độ của hình chữ nhật và lưu trữ chúng trong theo thứ tự tăng dần - nên lấy . Bắt đầu từ điểm sự kiện đầu tiên, với mọi điểm xác định tập hợp các hình chữ nhật cắt nhau tại tọa độ cho , xác định các đoạn liên tục của hình chữ nhật giao nhau và kiểm tra xem chúng có bao phủ hoàn toàn tại tọa độ hiện tại không . Với là cây nhị phân, nó sẽ lấy . Nếu bất kỳ phần nào của vẫn chưa được khám phá thì không được bao phủ hoàn toàn.
Chi tiết: Ý tưởng của thuật toán giao cắt phân đoạn là chỉ các phân đoạn liền kề giao nhau. Dựa trên thực tế này, chúng tôi đã xây dựng trạng thái và duy trì nó trong suốt thuật toán. Tôi đã cố gắng tìm một ý tưởng tương tự trong trường hợp này và cho đến nay không thành công, điều duy nhất tôi có thể nói là hai hình chữ nhật cắt nhau nếu tọa độ và tương ứng của chúng trùng nhau.
Vấn đề là làm thế nào để xây dựng và duy trì , và sự phức tạp của việc xây dựng và duy trì T là gì. Tôi giả sử rằng cây R có thể rất hữu ích trong trường hợp này, nhưng vì tôi thấy rất khó để xác định hình chữ nhật giới hạn tối thiểu bằng cách sử dụng cây R.
Bạn có ý tưởng nào về cách giải quyết vấn đề này không, và đặc biệt là cách xây dựng ?