How to get the angles across a 3D surface?

3 次查看(过去 30 天)
I want to create a colorbar for the angle variations across an STL 3D surface. How can this be done effectively such as in the attached image?

回答(1 个)

DGM
DGM 2025-4-4
I think this is what was meant.
unzip pringle_top.stl.zip % for the forum
% an STL file
T = stlread('pringle_top.stl');
% get the elevation angle for each face
fn = faceNormal(T);
th = acosd(fn(:,3)./vecnorm(fn,2,2));
% it's easier to set up scaled FVCData for a trisurf()
trisurf(T,'facevertexcdata',th);
axis equal; grid on; view(10,28)
xlabel('X'); ylabel('Y'); zlabel('Z')
colorbar

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by