how to plot a single valued function over a triangulated surface?

조회 수: 3(최근 30일)
ahmad
ahmad 2016년 4월 25일
댓글: ahmad 2016년 4월 25일
I have a finite element mesh [t,p] for a surface in 3D, where t is the triangles and p is the (x,y,z) coordinates of the vertices. For instance the mesh for the unit sphere from http://persson.berkeley.edu/distmesh/. I'm using the Matlab command patch('Faces',t,'Vertices',p,'edgecol','r'); to visualize this mesh. The question is how to plot a function defined over this triangulated surface?

채택된 답변

Mike Garrity
Mike Garrity 2016년 4월 25일
You can do it with patch. You'll just want to set FaceColor to interp and set the FaceVertexCData to to value of your function.
But you might find it easier to use the trisurf function. Here's a simple example:
npts = 100;
x = 2*randn(npts,1);
y = 2*randn(npts,1);
z = peaks(x,y);
c = z;
tri = delaunay(x,y);
h = trisurf(tri,x,y,z,c,'FaceColor','interp');
colormap(parula(12))
axis tight
  댓글 수: 1
ahmad
ahmad 2016년 4월 25일
Thanks a lot. That's exactly what I was looking for, i.e., setting FaceColor to interp and FaceVertexCData to the value of the function. However, I'm not sure if trisurf would give the required answer.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by