5

Vài ngày qua tôi đã dành cho việc tìm kiếm các triển khai xây dựng đường cong và không tìm thấy - không phải là thư viện cũng như công cụ.Thực hiện tái thiết đường cong

Để mô tả sự cố của tôi.

mối quan tâm chính của tôi là đường nét với khoảng cách: img

Từ giấy tờ tôi đã đọc trong khi chờ đợi, tôi đoán giải pháp sẽ yêu cầu sử dụng của Delaunay triangulation, và phương pháp tham chiếu nhất dường như được mô tả vào năm 1997 giấy "The Crust and the β-Skeleton: Combinatorial Curve Reconstruction "

Ai đó có thể chỉ cho tôi việc triển khai xây dựng lại đường cong có thể giúp tôi giải quyết vấn đề này không?

+1

Mặc dù bạn đã chọn câu trả lời, nếu sự cố vẫn còn là tìm kiếm sở thích "hoàn thành đường cong" và "hoàn thành đường viền", có khả năng cung cấp cho bạn nhiều lần truy cập hơn. Đối với loại vấn đề này, các xoắn ốc Euler phù hợp, vì thuật toán hoàn thành đường cong xoắn ốc Euler có thể cho phù hợp "tự nhiên" ngay cả khi có khoảng trống lớn. – Rethunk

+0

Cảm ơn @Rethunk.Tôi duyệt một số giấy tờ về chủ đề và có vẻ như nó phù hợp cho việc xây dựng lại đường cong đơn, thay vì sau đó xây dựng lại đường nét. Bạn có lẽ biết nếu nó được thực hiện trong một số thư viện hoặc môi trường mà sẽ cho phép thử nghiệm dễ dàng? – theta

+1

Khoảng một năm trước, tôi tìm thấy một số tài nguyên, bao gồm một số mã C++. Tôi đăng các liên kết ở đây: http://stackoverflow.com/questions/6828359/how-to-draw-clothoids-graphically-in-qt/8890013#8890013 – Rethunk

Trả lời

1

Thuật toán được thực hiện trong CGAL. Ví dụ thực hiện có thể được nhìn thấy trong C + + trong gói bản demo ipelets CGAL. Thậm chí nhiều hơn biên soạn bản demo cho phép người dùng áp dụng các thuật toán trong ipe GUI application:

img

Trong ví dụ trên, chúng tôi chọn chỉ là một phần của hình ảnh của tôi, như dòng dưới cùng không đáp ứng yêu cầu cần thiết, vì vậy lớp vỏ không thể được áp dụng trên phần đó cho đến khi sửa chữa. Hơn nữa, hình ảnh phải được lấy mẫu, như có thể được nhận thấy.

Nếu không có ai cung cấp ví dụ triển khai khác, tôi sẽ đánh dấu câu trả lời của tôi là chính xác sau vài ngày.

0

Triangulation Delaunay sử dụng đường cong được phân giải và với thông tin mất thông tin. Điều đó có thể gây ra những vấn đề lạ mà bạn không mong đợi chúng. Trong ví dụ của bạn, có lẽ phần giữa ở ranh giới thấp hơn sẽ gây ra vấn đề.

Trong trường hợp này có thể tốt hơn là thu thập thông tin liên quan từ mô hình và cố gắng kết hợp.

Một cái gì đó giống như, đối với mỗi điểm kết thúc, hãy thu thập các dẫn xuất đường bao trong vùng lân cận. Hơn tìm tất cả các điểm kết thúc mà điểm kết thúc có thể được kết nối, với hướng đạo hàm xấp xỉ và khớp nối đó không vượt qua đường khác. Có thể cho trọng lượng để kết nối có thể bằng khoảng cách chung và độ lệch từ đạo hàm cục bộ. Đưa ra trọng số xác định biểu đồ trọng số với các kết nối điểm cuối có thể. Kết hợp cạnh tối đa trong biểu đồ đó sẽ là giải pháp tốt cho một vấn đề.

+0

Triangulation Delaunay đóng đường bao ở độ chính xác chấp nhận được. Thuật toán lớp vỏ chỉ trích phần còn thiếu. Như đã được chứng minh trên giấy. – theta

0

Có một số cách để giải quyết vấn đề này;

Bạn có thể chỉ cần viết một con sâu theo các đường cong và khi bạn đến cuối của một, bạn lấy vector hướng hiện tại của bạn cùng với gradient và ngoại suy nó về phía trước. Tìm tất cả các thiết bị đầu cuối khác phù hợp nhất và sau đó ghi chúng; Kết nối lại với người có số điểm cao nhất. Đơn giản, và dễ bị các vấn đề nếu nó nhiều hơn một chia tay đơn giản.

A hierarchical waterfall method might be interesting

Có nhiều phương pháp ngưỡng thác nước (và các phương pháp cấp bộ) có thể được dùng để phát hiện những khoảng trống và điền chúng vào.

+0

Tôi đã đọc rằng có rất ít cách để thực hiện kết nối, nhưng việc đóng nó bằng thuật toán lớp vỏ được báo cáo là chính xác nhất cho các đường bao tôpô. – theta

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