在Matlab的3d图表的等高裁减

时间:2013-10-10 20:25:45

标签: matlab

如何在特定轮廓集中切割Matlab中的3D图形(例如,图形x^2+y^2应具有像玻璃一样清晰的上边缘)? 谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用两种方法切割三维图。

  • (左)设置NaN高于和低于两个阈值( @ Molly的提案
  • (右)使用当前ZLim的{​​{1}}属性,使用完全相同的阈值。

您可以看到axes尊重使用NaN创建的切片,因此它适用于surf级别。另一方面,surf创建了很好的剪切图形,即使是通过图块 - 它也可以在渲染级别上工作。

最后,为了使用ZLim进行更好的切割,您可以定义更精细的网格(例如NaN),但您仍将依赖于创建的网格。此外,meshgrid(-10:0.01:10, -10:0.01:10)方法只能轻松处理常量ZLim的切片(但这与轮廓有关)。

以下情节

enter image description here

生成
z

答案 1 :(得分:1)

您可以将截止值以上的值设置为nan

[X,Y] = meshgrid(-100:100,-100:100);
Z = X.^2+Y.^2;
ind = Z > 10000;
Z(ind) = nan;
mesh(X,Y,Z)

example