2

我已经根据一些数据绘制了一个曲面。在同一个图中,我想要一条 3D 线(我有我想要绘制的线的 [x,y,z] 值)。当我尝试在同一图中使用 plot3(x,y,z) 执行此操作时,该线始终位于曲面下方。

有没有什么办法解决这一问题?我不知道这个问题是否也出现在Matlab中。

最小的例子:

figure;
hold all;

y = x = 0:35;
z = ones(1,36).*0.5;
plot3(x,y,z);

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(Z);

结果(蓝线在表面下方):

例子

4

2 回答 2

3

要回答您的部分问题,使用以下代码在 MATLAB 中不会遇到此问题:

figure;
hold all;

x = 0:35;
y = x;
z = ones(1,36).*0.5;
plot3(x,y,z);

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(Z);

在此处输入图像描述

于 2013-05-30T11:58:50.730 回答
0

surf我在 Octave 中也遇到了这个问题,所以我改用了这个mesh函数。它不那么漂亮,并且具有不同的参数,但确实允许线条覆盖它: 在 Octave 中覆盖网格的 plot3 线

我用与上面相同的代码创建了它,但替换surf为:

    mesh ((X+8)*2.2, (Y+8)*2.2, Z);

因为mesh需要放大其参数。结果大致相同。

于 2015-09-14T22:18:03.393 回答