function main_draw_ansys_cloud_chart

% ansys 云图绘制

clear

clc

currentPath = fileparts(mfilename('fullpath'));

ansysCloudDataFilePath = fullfile(currentPath,'velocity_t1.csv');

[rawData,~,~] = xlsread(ansysCloudDataFilePath);

x = rawData(:,1);

y = rawData(:,3);

z = rawData(:,4);

[~,ind,~]=unique([x,y],'rows');% 存在重复的(x,y)

x = x(ind);y = y(ind);z = z(ind);

[xb,yb]=DrawBoundary(x,y,z);% 画边界

if isempty(xb),return;end

[X,Y]=meshgrid(linspace(min(x),max(x),100),linspace(min(y),max(y),100));

[X,Y,Z]=griddata(x,y,z,X,Y,'v4');

in = inpolygon(X,Y,xb,yb);% 此处可自定义多边形边界(各个拐角坐标(xb,yb),逆时针排列)

Z(~in)=nan;

figure('Color','w');

contourf(X,Y,Z,'LineStyle','none');

axis equal;

colormap jet

colorbar

% ---------------------------------------------------------------------------

function [xb,yb]=DrawBoundary(x,y,z)% 画边界多边形

xb=[];yb=[]; % 边界多边形拐角点

figure('NumberTitle','off','Name','请画出边界多边形','Color','White')

title('请{\color{red}逆时针}画出边界多边形的拐角点(左键画点,右键取消),画完后关闭界面')

set(gca,'Clipping','off','SortMethod','childorder')

%         set(gcf,'Pointer','cross') % 十字鼠标指针

hold on

scatter(x,y,2,z,'s','filled')% 数据散点图

hb=plot(nan,nan,'+-k','LineWidth',1,'MarkerSize',5);% 边界线

pbaspect([1.25 1 1]);

daspect([1 1 1]);

axis manual off

xylim=axis;

set(gcf,'WindowButtonUpFcn',@wbuf)

function wbuf(src,cbd)

switch get(gcf,'SelectionType')

case 'normal'% 左键,添加当前点(要逆时针画)

cp=get(gca,'CurrentPoint');

xb(end+1)=cp(1);

yb(end+1)=cp(3);

case 'alt'% 右键,删除最后一个点

if ~isempty(xb)

xb(end)=[];yb(end)=[];

end

end

% 多边形(不必把最后一个点和第一个点重合起来)

set(hb,'XData',xb,'YData',yb)

end

%         set(gcf,'WindowButtonMotionFcn',@wbmf)

%         function wbmf(src,cbd) % 动态画点

%             cp=get(gca,'CurrentPoint');

%             set(hb,'XData',[xb,cp(1)],'YData',[yb,cp(3)])

%         end

set(gcf,'WindowScrollWheelFcn',@wswf)

function wswf(src,cbd)% 用鼠标滚轮缩放局部图像

cp=get(gca,'CurrentPoint');

if cbd.VerticalScrollCount > 0

axis(xylim) % 恢复初始大小/范围

elseif cbd.VerticalScrollCount < 0 % 放大图像(缩小范围)

axis(0.85*(axis-cp([1,1,3,3]))+cp([1,1,3,3]))

end

end

waitfor(gcf)% 等待关闭界面,之后继续执行

if numel(xb)>=3% 至少三个点

xb=xb([1:end,1]);yb=yb([1:end,1]); % 闭合边界

fprintf('边界点:\n');disp([xb(:),yb(:)]);% 显示边界点

else

xb=[];yb=[];

warndlg('至少3个点!')

end

end

end

matlab contourf(data_100);,contourf以及griddata生成网格问题相关推荐

  1. MATLAB contour 和 contourf 函数 简单例子

    MATLAB contour 和 contourf 函数 简单例子 x = -10:0.1:10; y = 0:0.1:5; % 横向201个数 纵向51个数 [X,Y] = meshgrid(x,y ...

  2. 【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法

    ------------------------------------------------------------------  meshgrid 函数用来生成网格矩阵,可以是二维网格矩阵. e ...

  3. python meshgrid_numpy的生成网格矩阵 meshgrid()

    numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵 meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵. 1 基本语法 ...

  4. 既可生成点云又可生成网格的超网络方法 ICML

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文发表在 ICML 2020 中,题目是Hypernetwork approach to gener ...

  5. matlab nurbs闭合曲面,nurbs_toolbox Matlab 非均匀有理B样条函数,能生成B 曲线和曲面 238万源代码下载- www.pudn.com...

    文件名称: nurbs_toolbox下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 37 KB 上传时间: 2014-11-05 下载次数: 7 提 供 者 ...

  6. numpy的生成网格矩阵 meshgrid()

    numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵 meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵. 1 基本语法 ...

  7. 【PhotoScan精品教程】任务三:生成密集点云、生成网格、生成DEM、生成DOM

    <无人机航空摄影测量精品教程>合集目录(Pix4d.CC.EPS.PhotoScan.Inpho) [PhotoScan精品教程]任务一:新建工程.导入照片.设置坐标系.导入控制点(POS ...

  8. VTK:生成网格(附完整源码)

    VTK:生成网格 #include <iostream> #include <vtkSmartPointer.h> #include <vtkSphereSource.h ...

  9. Unity通过鼠标点击生成网格模型

    Unity通过鼠标点击生成网格模型 由于项目需要,制作了一个通过鼠标点击平面,根据点击的点首先生成一个面,再根据这个面生成一个背面,最后根据两个面来构成一个模型. 点击模型平面,划定外围轮廓 通过点击 ...

最新文章

  1. Python学习笔记.OS学习笔记 OS操作系统(operating system)(一)
  2. 【随机共振】基于随机共振的高频弱信号检测的MATLAB仿真
  3. 深度探索C++ 对象模型(3)-默认构造函数Default Constructor续
  4. 从已有安装包(vendor)恢复 composer.json
  5. c语言中常用的预处理命令6,C语言的预处理命令
  6. 7-11 名人堂与代金券 (25 分)
  7. 云服务器ecs搭建环境,ECS云服务器linux下搭建开发环境
  8. 华为2021数字化转型报告:从战略到执行.pdf(附103页pdf下载链接)
  9. SecureCrt 利用公匙登录L机取消密码登录。
  10. html表单验证元素必填,JavaScript 表单验证
  11. 文本挖掘学习笔记(二):文档信息向量化与主题关键词提取
  12. C# EF The instance of entity type ‘EqInfo‘ cannot be tracked because another instance with the
  13. win10找回BitLocker密钥的方法
  14. 利用CSS3实现图片3D旋转
  15. 2. 输出2~100之间的素数
  16. 输入一个URL之后到页面加载的整个过程分析
  17. 工作好搭档(四):铷安居 H-C81 电脑桌
  18. 如何把数据分类后各个行的值合并成一个格
  19. Linux Eclipse C++开发环境配置 无图无真相,自己动手丰衣足食。
  20. 【存储】 iSCSI Target(tgt) |什么是iSCSI target|SCSI协议

热门文章

  1. CAD如何统计各类数据?CAD图块/文字/面积统计教程
  2. 河北涿州水稻种植历史 国稻种芯·中国水稻节:保定效益双赢
  3. Python实现深度优先遍历和广度优先遍历
  4. vue项目中的文字简体转繁体
  5. 附下载丨《麦肯锡2022年科技趋势展望》报告
  6. linux aide使用方法,Linux AIDE(文件完整性检测)
  7. magento1中的eav模式讲解(入表)
  8. Minecraft-你好“红石计划”
  9. Xamarin.forms之Image加载服务器图片、WebView
  10. 史上最精辟的html/css编码规范(转)