Asked by luca pavarino
on 11 Jun 2019

I am visualizing a 3D scalar function using the patch command and a given colormap (hsv) associated with the scalar values of the function. Unfortunately, Matlab dow not separate colors with lines, a feature which can be very useful to distinguish close values with similar colors. How can I draw lines between colors in my 3D patch plot? Many thanks for your help,

Luca

Answer by KSSV
on 13 Jun 2019

Remove the shading interp line after plotting.

LV_S3_LAT; %load the data

V = Vertices(:,2:4);

T = Triangles(:,2:4)+1;

sV = size(V,1);

sT = size(T,1);

LAT = Values(:,4);

LAT_LV = LAT - min(LAT);

hh=patch('Faces',T,'Vertices',V,'FaceVertexCData',LAT_LV,'FaceColor','interp','EdgeColor','interp','EdgeColor','k');

colormap(hsv);

colorbar;

grid on

view(115,-16);

set(gca,'Color','k');

% shading interp

lightangle(-15,0)

hh.FaceLighting = 'gouraud';

hh.AmbientStrength = 0.3;

hh.DiffuseStrength = 0.8;

hh.SpecularStrength = 0.9;

hh.SpecularExponent = 25;

hh.BackFaceLighting = 'unlit';

darova
on 13 Jun 2019

"I need to put a line only at the boundary of each color (for example between light and dark green), not at the triangulation edges. Thanks,"

Luca

How can we find groups of colored triangles?

KSSV
on 13 Jun 2019

That case, you need to plot the contours on the data. Use this file exchange:

luca pavarino
on 13 Jun 2019

These solutions do not work:

a) removing shading interp line after plotting just draw the triangles boundary, which is not what I need (I need to draw the boundary between the colors assigned by the colormap, i.e. I need to draw the isochronal lines or a scala field over a 3D volume).

b) the TRICONTOUR(TRI,X,Y,Z) function is not what I need because it draws countour lines of Z. What I need would be a TRICONTOUR(TRI,X,Y,Z,W) where W is a scalar function defined over the 3D volume described by X, Y, Z, but such a functions does not seem to exist in Matlab.

Luca

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 6 Comments

## KSSV (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_713516

## luca pavarino (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_713523

## G A (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_713582

## luca pavarino (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_713664

## darova (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_714107

## luca pavarino (view profile)

Direct link to this comment:https://in.mathworks.com/matlabcentral/answers/466426-how-can-i-draw-separating-lines-between-colors-in-a-3d-volume-plot#comment_714223

Sign in to comment.