Apply a color variation to a triangular face

4 views (last 30 days)
Hi! I have this code. I would like to color the face of the triangle taking into account the RGB colors present on the three nodes.
node_1 = [-46.924, 11.0584, -59.8431];
node_2 = [-45.9522, 13.4294, -59.5705];
node_3 = [-46.4695, 9.8787, -57.7669];
nodes = [node_1; node_2; node_3];
face = [1,2,3];
figure
plot3(node_1(:,1),node_1(:,2),node_1(:,3),'.','Color',[176/255,255/255,0/255],'Markersize',20)
hold on
plot3(node_2(:,1),node_2(:,2),node_2(:,3),'.','Color',[0/255,255/255,155/255],'Markersize',20)
plot3(node_3(:,1),node_3(:,2),node_3(:,3),'.','Color',[0/255,199/255,255/255],'Markersize',20)
trimesh(face(:,:),nodes(:,1),nodes(:,2),nodes(:,3),'EdgeColor',[210/255, 210/255, 210/255],'Linewidth',1,'Facecolor','w')
hold off
grid off
view([20,130,40])

Accepted Answer

Walter Roberson
Walter Roberson on 15 May 2023
Edited: Walter Roberson on 15 May 2023
Assign the result of trimesh() to a variable. The result will be a patch object.
You can then set the patch properties. In particular, look at https://www.mathworks.com/help/matlab/ref/matlab.graphics.primitive.patch-properties.html#buduav0-1-FaceVertexCData FaceVertexCData along with 'FaceColor', 'interp' . Done right you can assign a color to each vertex, and then the face color will be a progressive interpolation between the colors of the vertices.
  5 Comments
Walter Roberson
Walter Roberson on 16 May 2023
node_1 = [-46.924, 11.0584, -59.8431];
node_2 = [-45.9522, 13.4294, -59.5705];
node_3 = [-46.4695, 9.8787, -57.7669];
nodes = [node_1; node_2; node_3];
face = [1,2,3];
vertex_colors = [176, 255, 255
0, 255, 155
0, 199, 255]./255;
h = trimesh(face(:,:),nodes(:,1),nodes(:,2),nodes(:,3),'EdgeColor',[210/255, 210/255, 210/255],'Linewidth',1,'Facecolor','w')
h =
Patch with properties: FaceColor: [1 1 1] FaceAlpha: 1 EdgeColor: [0.8235 0.8235 0.8235] LineStyle: '-' Faces: [1 2 3] Vertices: [3×3 double] Show all properties
h.FaceVertexCData = vertex_colors;
h.FaceColor = 'interp';
view([20,130,40])

Sign in to comment.

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!