在 3D 中绘制表面,其中 f(x,y,z) 消失

Plot surface in 3D where f(x,y,z) vanishes

我有一个功能

f(x,y,z) = 1 + 2xyz - xx - yy - z*z。我感兴趣的范围是任何变量的 [-1,1]。

显然,我无法构建人类可见的 4D 图,但我可以在 3D 中绘制它消失的点,或者用红色填充它为正的范围。

几乎忘记了关于 matlab 和 Octave 的所有内容,我搜索了示例并尝试了:

[x y z] = meshgrid(-1:0.1:1, -1:0.1:1, -1:0.1:1);
coords = [x(:) y(:) z(:)];
V = 1.0 + 2*x.*y.*z -y.*y - z.*z - x.*x;
for p = 1: 1:100
 if V(p) >=0
 c = 'red';
scatter3(x(:,p),y(:,p), z(:,p), 'c');
 end
  end

它产生了一个情节,但它一定是假的,因为没有红点,1,1,1是一个解决方案,没有出现在情节中。 z 轴也乱了,只显示负值。

请帮忙。

剧情:

试试这个

[x y z] = meshgrid(  -1 : 0.1 : 1,  -1 : 0.1 : 1,  -1 : 0.1 : 1  );
V       = 1.0 + 2 * x .* y .* z - y .* y - z .* z - x .* x;

scatter3( x(:), y(:), z(:), 100,  V(:), 'filled' );