如何在特定轮廓集中切割Matlab中的3D图形(例如,图形x^2+y^2
应具有像玻璃一样清晰的上边缘)?
谢谢!
答案 0 :(得分:3)
您可以使用两种方法切割三维图。
NaN
高于和低于两个阈值( @ Molly的提案)ZLim
的{{1}}属性,使用完全相同的阈值。您可以看到axes
尊重使用NaN
创建的切片,因此它适用于surf
级别。另一方面,surf
创建了很好的剪切图形,即使是通过图块 - 它也可以在渲染级别上工作。
最后,为了使用ZLim
进行更好的切割,您可以定义更精细的网格(例如NaN
),但您仍将依赖于创建的网格。此外,meshgrid(-10:0.01:10, -10:0.01:10)
方法只能轻松处理常量ZLim
的切片(但这与轮廓有关)。
以下情节
由
生成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)