How to get the angles across a 3D surface?

2 views (last 30 days)
Mohamed Ibraheem
Mohamed Ibraheem on 19 Aug 2022
Answered: DGM on 4 Apr 2025
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?

Answers (1)

DGM
DGM on 4 Apr 2025
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

Products

Community Treasure Hunt

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

Start Hunting!