Tôi đang cố gắng tìm cách tính điểm giao nhau giữa b-spline và đường thẳng. Cho đến nay Google đã không được giúp đỡ nhiều.Điểm giao nhau giữa một đường spline và một dòng
Trả lời
Cách tiếp cận tốt nhất của bạn có thể là chia nhỏ đường spline thành các đoạn đường riêng lẻ và kiểm tra từng đoạn đường cho giao cắt với đường kẻ. Spline có thể giao với dòng trong nhiều hơn một điểm, vì vậy bạn cũng sẽ phải quyết định cái nào bạn quan tâm đến
Một cách tiếp cận toán học thuần túy.
- Chuyển spline và dòng quá rằng dòng nằm trên trục X.
- Tính điểm trên đường spline mà Y = 0 (phụ thuộc vào thứ tự của đường spline).
- Chuyển những điểm này trở lại hệ thống dây chính gốc của bạn.
Nếu đây là cách bạn đang đi, tôi có thể tìm ra các công thức cần thiết.
Tôi thích cách tiếp cận này, nhưng làm cách nào bạn giải quyết khi nào Y = 0 của spline? Có cách nào khác ngoài việc đánh giá phân đoạn spline và cố gắng ước tính nó không? – Herms
Tùy thuộc vào thứ tự của spline có các giải pháp hiện có cho các phương trình spline (ít nhất là lên đến splines khối). Các công thức có xu hướng thực sự khó xử và chúng không được bảo đảm là có lỗi số thấp. Như tôi đã nói: một cách tiếp cận toán học thuần túy. –
Thuật toán hiệu quả nhất mà tôi đã nghe nói đến được gọi là Cắt xén Bezier.
Đây là book chapter on curve and spline intersection (pdf).
Tôi đã thực hiện thành công giải pháp từ nguồn này, đặc biệt là xem phần 7.3, vì việc tìm kiếm đa thức cho hàm bezier và B Spline rất dễ dàng. –
- 1. Tạo một đường cong spline giữa 2 điểm trong Three.js
- 2. Tìm một đường giao nhau với một đường thẳng đã biết ở góc bên phải, với một điểm
- 3. Đường chéo Hình chữ nhật - cách tìm điểm giao nhau?
- 4. Cách kiểm tra giao lộ giữa một đường thẳng và hình chữ nhật?
- 5. Sự khác nhau giữa đường ống một file sh và gọi một tập tin vỏ
- 6. điểm giao nhau 2 đường cong bình thường
- 7. Tìm điểm giao nhau của tất cả các đoạn đường
- 8. Tìm một điểm trên một dòng
- 9. R/GIS: Tìm khoảng cách trực giao giữa một vị trí và đường gần nhất
- 10. Python Giữ điểm trong spline suy
- 11. Tìm tất cả hình học giao nhau với một điểm
- 12. Làm cách nào để tính điểm giao nhau của đường thẳng và hình dạng tùy ý?
- 13. Cho một khởi đầu và điểm cuối, và một khoảng cách, tính toán một điểm dọc theo một đường
- 14. Tìm CGPoint trên hình chữ nhật UIView giao nhau bằng một đường thẳng tại một góc nhất định từ điểm giữa
- 15. Thư viện Spline, B-Spline và NURBS C++
- 16. Di chuyển điểm trong một bộ đệm đến cùng một số dòng như điểm trong một bộ đệm khác nhau
- 17. cách tìm sự giống nhau giữa hai đường cong và điểm số tương tự?
- 18. Vẽ đường vuông góc với một dòng trong opencv
- 19. Sự khác nhau giữa Dòng # getAnnotations() và Field # getDeclaredAnnotations()
- 20. Tìm tọa độ của một điểm giữa hai điểm?
- 21. Giao điểm của đường thẳng và cạnh tam giác
- 22. Grails: Sự khác nhau giữa một phiên không bị xóa và một giao dịch được quay lại là gì?
- 23. Ransac cho spline fitting
- 24. Tìm chiều dài của một khối B-spline
- 25. Thuật toán để chia Path2D tự giao nhau thành nhiều đường không tự giao nhau?
- 26. đọc dòng 2 tại một thời điểm
- 27. Với một hộp giới hạn và một dòng (hai điểm), xác định xem đường có cắt ngang hộp
- 28. Đọc một dòng tại một thời điểm trong C
- 29. Vẽ một đường cong Bezier giữa một tập hợp các điểm nhất định
- 30. Cách tìm 4 điểm bên cạnh giao điểm của hai dòng
Tôi đồng ý, đây là phương pháp thường được đề xuất. Nó thường hiệu quả hơn nếu bạn làm điều này lặp đi lặp lại, tinh chỉnh các đoạn đường mà bạn tìm thấy một giao lộ cho đến khi bạn nhận được độ phân giải mong muốn. – Kena