2012-09-25 81 views
7

Tôi đã triển khai k-d tree 2 chiều trong Javascript (check it out on GitHub) và tôi đang sử dụng tìm kiếm lân cận gần nhất bên cạnh D3.Tìm kiếm lân cận gần nhất trong D3

Tôi đã học được rằng có a quadtree implementation trong D3, nhưng cũng phát hiện ra rằng tài liệu API rất thưa thớt và các tìm kiếm của Google không hiệu quả. Tôi thà sử dụng một thư viện du lịch tốt hơn bánh xe được tái phát minh của riêng tôi khi có thể.

Làm cách nào để bạn thực hiện tìm kiếm lân cận gần nhất sử dụng quadtree của D3? Bởi người hàng xóm gần nhất, tôi muốn nói:

  • Điền vào quadtree với điểm 2 chiều
  • Tìm kiếm điểm quadtree kín gần một điểm mới mà không nhất thiết phải tồn tại trong quadtree
+0

Ra khỏi tò mò và không có gì khác, bạn đang sử dụng một cây JS KD cho? –

+0

@Sajjan Tôi có s trong một và trên mousemove vòng tròn gần vị trí chuột được tô sáng. Nó rất mịn và vảy tốt vì tìm kiếm lân cận gần nhất trong cây K-D 2 chiều là O (log n). –

+0

Tuyệt! Nó sẽ có thể chia sẻ mã của bạn (trừ khi tất nhiên nó là độc quyền hoặc tư nhân), tôi nghĩ rằng tôi có thể học được rất nhiều từ nó. –

Trả lời

4

Bản trình diễn đánh răng không thực sự tìm thấy người hàng xóm gần nhất, mà là tìm các điểm quadtree trong một hình chữ nhật đã cho. (Hãy thử đánh răng một hình chữ nhật rỗng và nó không nhất thiết phải ghé thăm các nước láng giềng gần nhất.)

tôi chia hai ví dụ mà hiệu quả thấy người hàng xóm gần nhất trong quadtree đến một điểm tùy ý - xem http://bl.ocks.org/patricksurry/6478178

Các vấn đề liên quan