How can I place a quiver plot on top of a triangular surface (trisurf) plot?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ravindu Lokuliyana
el 28 de Ag. de 2019
Comentada: Ravindu Lokuliyana
el 29 de Ag. de 2019
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
0 comentarios
Respuesta aceptada
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)
Ver también
Categorías
Más información sobre Vector Fields en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!