首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用由曲线的函数定义的色彩映射表填充曲线下方的区域

使用由曲线的函数定义的色彩映射表填充曲线下方的区域
EN

Stack Overflow用户
提问于 2019-03-24 10:44:10
回答 1查看 75关注 0票数 0

考虑下图:

在左侧,您可以使用patch命令看到相对于函数轮廓的圆的填充

代码语言:javascript
运行
AI代码解释
复制
t = linspace(-pi,pi,100);
c = exp(-cos(t));
figure(1)
patch(cos(t),sin(t),c)
axis equal

在右侧,您可以看到沿左侧虚线轴的函数轮廓,该轮廓是使用area命令填充的。

代码语言:javascript
运行
AI代码解释
复制
figure(2)
area(cos(t),c,0);

我正在尝试做的是用左面板中表示的颜色映射表定义的颜色填充曲线(右面板)下的区域。结果应该如下所示

EN

回答 1

Stack Overflow用户

发布于 2019-03-24 12:55:52

我能想到的最接近的东西是:

代码语言:javascript
运行
AI代码解释
复制
function q55322965
% Evaluate the equation (half domain!)
t = linspace(-pi,0,50);
c = exp(-cos(t));

% Turn vectors into a mesh:
[TT,CC] = meshgrid(cos(t),c);

% Clear all points that are above the curve:
CC(CC > c) = NaN;

% Fill in the rectangle between the chart and zero:
CC(end+1,:) = 0;
TT(end+1,:) = TT(end,:);

% Plot:
figure(); mesh(TT,CC,CC,'FaceColor','interp','EdgeColor','interp'); view([0,90]);

这会产生以下结果:

如果要在使用此方法打印时减少锯齿,可以在t中提高分辨率。例如,如果我们在linspace中使用500而不是50,我们会得到:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55322965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档