Ho un set di dati che descrive una nuvola di punti di un cilindro 3D (xx,yy,zz,C
): Interpola superficie del cilindro 3D in Matlab
e vorrei fare una trama superficiale da questo set di dati, simile a questo
per fare questo ho pensato che avrei potuto interpolare i miei dati sparsi utilizzando TriScatteredInterp
su una griglia regolare e poi tracciare utilizzando 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
questo funziona molto bene per gli oggetti concave e convesse, ma finisce in questo per il cilindro:
Qualcuno può aiutarmi su come ottenere una trama più bello?
Mi dispiace ma non è proprio quello che sto cercando. Piuttosto che montare un nuovo cilindro, vorrei tracciare una superficie basata sulla nuvola di punti misurata. Ho provato prima con la triangolazione, ma questo non produce i risultati giusti per me, visto che molti dei miei punti di riferimento non sono più presenti sulla mappa. –