在 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' );
我有一个功能
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' );