У меня есть набор данных, который описывает облако точек 3D-цилиндра (xx,yy,zz,C
):
и я хотел бы сделать поверхностный график из этого набора данных, подобный этому
Чтобы сделать это, я подумал, что смогу интерполировать мои разбросанные данные с помощью TriScatteredInterp
на регулярную сетку, а затем построить его с помощью 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
Это хорошо работает для выпуклых и вогнутых объектов, но заканчивается в этом для цилиндра:
Может ли кто-нибудь помочь мне в том, как добиться более приятного заговора?