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

조회 수: 4 (최근 30일)
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

채택된 답변

KSSV
KSSV 2019년 8월 29일
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.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Vector Fields에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by