MATLAB平面曲线按曲率上色&三维曲面颜色栏链接自定义属性(二维曲线第三维用颜色表示,三维曲面第四维用颜色表示)

平面曲线按曲率上色(曲线第三维用颜色表示)

先上效果图

正弦曲线按曲率上色
MATLAB平面曲线按曲率上色&三维曲面颜色栏链接自定义属性(二维曲线第三维用颜色表示,三维曲面第四维用颜色表示)_第1张图片
自由曲线按误差上色
MATLAB平面曲线按曲率上色&三维曲面颜色栏链接自定义属性(二维曲线第三维用颜色表示,三维曲面第四维用颜色表示)_第2张图片

自由曲面按误差上色
MATLAB平面曲线按曲率上色&三维曲面颜色栏链接自定义属性(二维曲线第三维用颜色表示,三维曲面第四维用颜色表示)_第3张图片
曲线第三维用颜色表示实现方法:

x=linspace(-10,10,100);
y=sin(x);
y(end)=NaN;
z=abs(sin(x))./(1+cos(x).^2).^1.5
patch(x,y,z,'EdgeColor','interp','linewidth',3);

以上为示例代码,正弦曲线按曲率上色,复制到MATLAB可直接运行。

x=linspace(-10,10,100);

上面那条语句表示曲线上点的x坐标

y=sin(x);
y(end)=NaN;

上面那条语句表示曲线上点的y坐标,y(end)=NaN不可缺少,否则会将曲线首尾相连。

z=abs(sin(x))./(1+cos(x).^2).^1.5

上面那条语句表示第三维的数值,是上色的依据(这里给出的是计算曲率的语句)
/

三维曲面颜色栏链接自定义属性(曲面第四维用颜色表示)

实例代码:

mesh(Xp,Yp,Zp,devia_mean,'FaceColor','interp')
colorbar

由于数据较多,大家在下面网盘链接下载.mat文件后,在MATLAB中打开后即可读取相应变量数据,读取后运行以上代码即可。

链接:https://pan.baidu.com/s/11BjOHkaSqqhpK_klTwYvgw
提取码:8e0h
复制这段内容后打开百度网盘手机App,操作更方便哦

其中Xp是曲面的x坐标,Yp是曲面的y坐标,Zp是曲面的z坐标,devia_mean是上色依据,它的大小和Xp、Yp、Zp相同。'interp’可以让曲面上色更平滑。

还有其他问题可以联系我。
[email protected]

参考文献:
[1]长沙理工大学,课程设计,MATLAB中三维曲面及其色彩处理问题的研究。https://wenku.baidu.com/view/8f48bd3c87c24028915fc3d1.html
[2]MATLAB帮助中心,patch。https://ww2.mathworks.cn/help/matlab/ref/patch.html
[3]Pagani, L., Scott, P.J.Curvature based sampling of curves and surfaces(2018) Computer Aided Geometric Design, 59, pp. 32-48.

你可能感兴趣的:(MATLAB,matlab)