Tôi làm điều này khá thường xuyên để tạo ra hình ảnh của sợi và hình cầu cho mô phỏng phương tiện truyền thông xốp. Tôi có một cách đơn giản tốt đẹp làm điều này bằng cách sử dụng một kỹ thuật phân tích hình ảnh rất chuẩn được biết đến như là 'biến đổi khoảng cách'. Điều này đòi hỏi phải có quyền truy cập vào một số gói phân tích hình ảnh. Tôi sử dụng Python với Scipy, vì vậy đây không phải là vấn đề. Đây là một bản demo để chuyển đổi các điểm phân phối ngẫu nhiên vào các lĩnh vực:
import scipy as sp
import scipy.ndimage as spim
im1 = sp.rand(100, 100) < 0.995 # Create random points in space
dt = spim.distance_transform_edt(im1)
im2 = dt < 5 # To create sphere with a radius of 5
Và đó là nó! Việc chuyển đổi khoảng cách có thể chậm đối với những hình ảnh rất lớn, nhưng có phiên bản hiệu quả trên mạng. Ví dụ, ImageJ có một song song. Rõ ràng, để tạo các sợi dày bạn chỉ cần tạo ra hình ảnh của bạn mỏng, sau đó áp dụng các bước 2 và 3 ở trên.
Được gắn thẻ lại "ngôn ngữ không thuyết phục" vì ngôn ngữ triển khai thực sự không liên quan. –
đây là câu hỏi SO có liên quan: http://stackoverflow.com/questions/101718/drawing-a-variable-width-line-in-opengl-no-gllinewidth –
@banister: bạn có một số bản demo để chia sẻ với chúng tôi? – sdkie