Hãy cẩn thận, nếu bạn có kế hoạch mở rộng quy mô thuật toán của bạn đến nhiều điểm, thăm dò cho điểm lân cận là tốt hơn done sử dụng chỉ số không gian . Tôi không nhận thức được sự tồn tại của các chỉ mục không gian bằng cách sử dụng các tọa độ cực, và tôi chắc chắn rằng chúng sẽ có một chút phức tạp để thực hiện/sử dụng. Vì vậy, nếu bạn có:
- rất nhiều điểm,
- thăm dò thường xuyên hơn điểm di chuyển,
tự hỏi mình câu hỏi liệu bạn nên sử dụng tọa độ Descartes và một chỉ số không gian.
Làm toán cho mình theo trường hợp sử dụng điển hình của bạn:
Sử dụng Descartes cùng tọa độ cực:
- Chuyển đổi cực đến Descartes được thực hiện chỉ khi một điểm di chuyển, và liên quan đến hai lượng giác chức năng;
- Tìm điểm gần nhất với khoảng cách nhất định đến điểm khác có thể được thực hiện trong thời gian O (1) (tùy thuộc vào khoảng cách trung bình, kích thước của chỉ số không gian, số điểm ...) và không liên quan gì khác hơn cho biết thêm/nhân (không phải ngay cả căn bậc hai, bạn so sánh khoảng cách bình phương).
Chỉ sử dụng tọa độ cực:
- Quét tất cả các điểm w/o chỉ số không gian là O (n);
- Điều này liên quan đến một hàm lượng giác trên mỗi so sánh (do đó n các cuộc gọi trig trên mỗi đầu dò).
Hãy lưu ý rằng giàn có nhiều tốn kém trong thời gian tính toán.
Nguồn
2012-02-20 10:43:31
thuật toán euclide có hiệu quả với bạn không? – Lostsoul
Bạn có thể tính toán bán kính và cung tương ứng với phân đoạn chứa đầy đủ điểm bán kính tìm kiếm và điểm của bạn, sau đó kiểm tra tất cả các điểm khác trong các ranh giới đó. Bạn cuối cùng, tất nhiên, phải bằng cách nào đó tính toán khoảng cách giữa những điểm đó và của bạn. –