Tôi có một bộ dữ liệu mô tả một đám mây điểm của một xi lanh 3D (xx,yy,zz,C
): suy bề mặt xi lanh 3D trong Matlab
và tôi muốn thực hiện một âm mưu bề mặt từ tập dữ liệu này, tương tự như này
để làm được điều này, tôi nghĩ tôi có thể suy dữ liệu nằm rải rác của tôi sử dụng TriScatteredInterp
vào lưới thông thường và sau đó âm mưu sử dụng nó surf
:
F = TriScatteredInterp(xx,yy,zz);
max_x = max(xx); min_x = min(xx);
max_y = max(yy); min_y = min(yy);
max_z = max(zz); min_z = min(zz);
xi = min_x:abs(stepSize):max_x;
yi = min_y:abs(stepSize):max_y;
zi = min_z:abs(stepSize):max_z;
[qx,qy] = meshgrid(xi,yi);
qz = F(qx,qy);
F = TriScatteredInterp(xx,yy,C);
qc = F(qx,qy);
figure
surf(qx,qy,qz,qc);
axis image
Điều này hoạt động thực sự tốt cho các đối tượng lồi và lõm nhưng kết thúc trong hình trụ này:
Có thể giúp tôi làm cách nào để đạt được âm mưu đẹp hơn không?
Tôi xin lỗi nhưng đó không hoàn toàn là những gì tôi đang làm. Thay vì lắp một hình trụ mới, tôi muốn vẽ một bề mặt dựa trên đám mây điểm được đo. Tôi đã thử với triangulation trước nhưng điều này không tạo ra kết quả đúng cho tôi hoặc là rất nhiều datapoints của tôi sau đó không còn tính năng trên bản đồ. –