How can I place a quiver plot on top of a triangular surface (trisurf) plot?

6 visualizaciones (últimos 30 días)
Hi there,
I have plotted wave heights on an unstructured triagngular surface and added wave directions using quiver function.
Since these two plots are in two different planes, the final figure shows as attached image (Fig01.png).
Hereby attached the used code (Test_case.zip/Combine_Hsig_DIR_V1.m) with all relevent files.
Can anyone help me to place the quiver plot on top of the triangular surface?
Following mention the last part of the code.
eval(['load ' Hsig_matfile]); % load binary file
elefile =[basename '.ele'];
fid = fopen(elefile); % load TRIANGLE element based connectivity file
[nelem] = fscanf(fid,'%i',[1 3]); % get number of triangles
ncol = 4 + nelem(3); % specify number of columns in elefile
tri = fscanf(fid,'%i',[ncol nelem(1)])'; % get connectivity table
z = eval([wavepar]); % get wave parameter
trisurf(tri(:,2:4),Xp,Yp,z); % make plot using trisurf
view(0,90);shading interp; % make 2D view and smooth plot
colormap(jet);colorbar;axis equal % include colorbar and equal axes
hold on;
hd = quiver(Xp,Yp,Hs_x,Hs_y,'color','k'); % plot directions
% set(hd, 'ZData', ones(size(get(hd, 'XData'))) * 999); % set quivers into top plane
BR,
Ravi

Respuesta aceptada

KSSV
KSSV el 29 de Ag. de 2019
USe 2D plot:
patch('faces',tri(:,2:4),'vertices',[Xp' Yp'],'facevertexcdata',z','facecolor','interp','edgecolor','none') ;
colormap(jet);colorbar;axis equal % include colorbar and equal axes
hold on;
quiver(Xp,Yp,Hs_x,Hs_y,'color','k'); % plot directions
If you want a 3D plot...you can use quiver3.

Más respuestas (0)

Categorías

Más información sobre Vector Fields en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by