Đường ống để tạo lưới Voronoi


10

Tôi muốn triển khai plugin Maya (câu hỏi này độc lập với Maya) để tạo các mẫu 3D Voronoi, đại loại như

nhập mô tả hình ảnh ở đây

Tôi chỉ biết rằng tôi phải bắt đầu từ lấy mẫu điểm (Tôi đã triển khai thuật toán lấy mẫu poisson thích nghi được mô tả trong bài viết này ).

Tôi nghĩ rằng, từ những điểm đó, tôi nên tạo ra dây 3D của lưới áp dụng Voronoi (tôi đã thử sử dụng (Python) scipy.spatial.Voronoi nhưng kết quả là khác với những gì tôi mong đợi).

Tôi đang thiếu một cái gì đó? Bất cứ ai có thể đề xuất các đường ống và thuật toán thích hợp mà tôi phải thực hiện để tạo ra các mẫu như vậy?

[EDIT] Dưới đây là một vài ví dụ về những gì tôi nhận được khi xử lý kết quả tôi nhận được từ scipy.spatial.Voronoi như thế này (như được đề xuất ở đây ):

vor = Voronoi(points)
for vpair in vor.ridge_vertices:
    for i in range(len(vpair) - 1):
        if all(x >= 0 for x in vpair):
            v0 = vor.vertices[vpair[i]]
            v1 = vor.vertices[vpair[i+1]]
            create_line(v0.tolist(), v1.tolist())

Các đỉnh màu xám là các điểm được lấy mẫu (hình dạng ban đầu là một hình cầu đơn giản): nhập mô tả hình ảnh ở đây

Đây là một hình dạng phức tạp hơn (một cánh tay) nhập mô tả hình ảnh ở đây


Cảm ơn bạn đã trả lời. Tôi sẽ sao chép những gì tôi đã làm và đăng một màn hình theo đề xuất. Dù sao, mục đích cuối cùng của câu hỏi này không phải là gỡ lỗi mã của tôi, nhưng để hiểu liệu những gì tôi đang làm là đúng hay còn có những bước khác mà tôi đang thiếu ở giữa!
Jiloc

thêm ví dụ như đề xuất!
Jiloc

Các điểm từ mẫu poisson là đúng. Thuật toán tạo ra chúng được kiểm tra đơn vị đầy đủ và các thuật toán bạn nhìn thấy trong màn hình là các hình cầu với tâm ở điểm được lấy mẫu mà tôi lập trình trước khi gọi Voronoi (điểm)! Tôi lo lắng rằng tôi không đi theo con đường thích hợp hoặc tôi đang xử lý kết quả Voronoi sai cách
Jiloc

Các hình ảnh bạn hiển thị đã thực hiện voronoi trên chức năng 2d.
joojaa

@joojaa Từ những hình ảnh ví dụ tôi dự đoán rằng các cạnh của ô Voronoi trên bề mặt 2D là những gì được yêu cầu (để đưa ra một tập hợp các đoạn đường nối các điểm trên bề mặt hình cầu, thay vì tập hợp các phần mặt phẳng sẽ được đưa ra trong 3D) . Tuy nhiên, scipy.spatial.Voronoi dường như được thiết kế cho không gian N chiều hơn là các bề mặt được nhúng trong chúng. Tôi không thể thấy ngay nó sẽ được sử dụng như thế nào cho các điểm 3D bị ràng buộc với bề mặt 2D.
trichoplax

Câu trả lời:


1

http://www.cs.sandia.gov/~samitch/ con / try_final.pdf Không có thuật toán máy tính trong bất kỳ ngôn ngữ lập trình nào, nhưng bạn có thể sao chép nó dễ dàng với một số Phản xạ mặt phẳng và các thuật toán từ liên kết trên.


Chào mừng bạn đến với ComputerGraphics.SE! Thông thường, nên đặt câu trả lời trên Stack Exchange (ví dụ: trong trường hợp các liên kết đi xuống và nói chung để mọi người không phải theo liên kết để có thể biết liệu câu trả lời có hữu ích với họ không). Bạn có thể muốn cải thiện câu trả lời của mình bằng cách bao gồm một bản tóm tắt ngắn về nội dung của bài viết.
Martin Ender
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.