You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于圆盘接触点的半径、角度及温度数据生成热图?

嘿,我来帮你搞定这个圆盘温度热图的问题!你已经拿到了接触点的坐标和对应温度,只差把它们关联起来并可视化这一步啦,我给你分两种方案来实现:

第一步:先修正现有代码的小问题

你现有代码最后一行的变量名大小写不统一(前面定义的是小写x,y,x1,y1,调用时用了大写X,Y,X1,Y1),先改过来避免报错:

plot(x, y, x1, y1, 'black', x2, y2, 'black')

另外要注意:如果你的Theta是角度值(不是弧度),那计算x,y坐标时要转成弧度,MATLAB的三角函数默认用弧度!修改这两行:

x = r*cos(deg2rad(Theta')); % 角度转弧度
y = r*sin(deg2rad(Theta'));
第二步:温度关联与热图生成

方案1:快速直观的离散点温度映射

直接用scatter函数把每个接触点的颜色绑定到对应的温度,操作简单,能直接看到每个采样点的温度:

figure
% 先画出圆盘内外轮廓
plot(x1, y1, 'black', 'LineWidth', 1.5)
hold on
plot(x2, y2, 'black', 'LineWidth', 1.5)

% 绘制带温度颜色的接触点
scatter(x, y, 10, Tsurf_d, 'filled') % 10是点的大小,'filled'让点更醒目
colorbar % 显示温度色阶
colormap viridis % 可以换成jet、hot等你喜欢的色图
xlabel('X 坐标')
ylabel('Y 坐标')
title('圆盘接触点温度分布')
axis equal % 保持圆盘的圆形比例,不会被拉伸变形
hold off

方案2:连续平滑的圆盘热图

如果想要整个圆盘区域的连续温度可视化,需要先把离散的采样点插值到网格化的圆盘区域,生成更美观的热图:

% 1. 创建圆盘的网格化坐标(覆盖整个圆盘范围)
theta_grid = linspace(0, 2*pi, 200); % 角度网格(弧度)
r_grid = linspace(0.0145, 0.0475, 100); % 半径网格,对应内外径
[R_grid, Theta_grid] = meshgrid(r_grid, theta_grid);
X_grid = R_grid .* cos(Theta_grid);
Y_grid = R_grid .* sin(Theta_grid);

% 2. 将离散温度插值到网格上
% 用griddata函数实现笛卡尔坐标插值,cubic是三次插值,平滑效果好
T_grid = griddata(x, y, Tsurf_d, X_grid, Y_grid, 'cubic');

% 3. 绘制热图
figure
pcolor(X_grid, Y_grid, T_grid)
shading interp % 开启颜色平滑过渡
hold on
% 叠加圆盘内外轮廓
plot(x1, y1, 'black', 'LineWidth', 1.5)
plot(x2, y2, 'black', 'LineWidth', 1.5)
colorbar
colormap viridis
xlabel('X 坐标')
ylabel('Y 坐标')
title('圆盘温度分布热图')
axis equal
hold off

小提示

  • 插值方法可以根据数据情况更换:nearest(最近邻,速度最快)、linear(线性插值)、cubic(三次插值,平滑度最高)
  • 色图可以自定义,比如colormap cool或者colormap([0 0 1; 0 1 0; 1 0 0])来设置自己的颜色渐变
  • 如果只想显示接触点区域的温度,不想插值整个圆盘,方案1会更适合你

内容的提问来源于stack exchange,提问作者Miguel Bernat Gallardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:47:20