首页 > 解决方案 > 八度:在 3d 中移动轮廓线?

问题描述

在 Octave 中,我想在 3D 中创建函数的轮廓线,然后在空间中移动它:

x1=-4:0.1:4;

[X,Y]=meshgrid(x1,x1);

Z= X.^2+2*Y.^2;

hx=contour(X,Y,Z,[4 4]);

所以我得到了轮廓。如何移动它?

我想通过添加一个向量 [a,b,c] 来翻译它。

编辑:

例如,请参见此处。将蓝色椭圆移动到黄色椭圆的位置。

一个椭圆移动了

谢谢

卡尔

标签: plotoctavematlab-figure

解决方案


正如 Andy 所提到的,轮廓是 2D 图像,因为它是 3D 曲线与平行于 XY 平面的给定平面的交点的投影。例如,地理地图上的海拔曲线是等高线,地图是二维的。

为了解释 3D 和 2D 轮廓之间的区别,我绘制了数据的 3D 表面和 3 个多重计数。而不是你的高度值 4 我使用 0,5,10..50 来获得不同 Z 值的多个轮廓

x1=-4:0.1:4; 
[X,Y]=meshgrid(x1,x1);
Z= X.^2+2*Y.^2;
subplot(2,2,1)
surf(X,Y,Z);
subplot(2,2,2)
contour(X,Y,Z,0:5:50);
subplot(2,2,3)
contour(X+2,Y+2,Z,0:5:50);
subplot(2,2,4)
contour(X,Y,Z+4,0:5:50);
print -djpg figure2.jpg

八度多图

如您所见,子图 1(上,左)是 3D 表面,子图 2(上,右)是 2D 图像,报告 Z 从 5 到 50 第 5 步的所有投影。Z=0 的轮廓只是一个点,而不是绘制。

在子图 3(底部,左侧)上,我们将图形沿 XY 方向移动 X,Y = 2,2 。计数形状没有改变;X,Y 范围而不是 -4:4 现在是 -2:6。

在子图 4(右下)上,我们将图形沿 Z 方向移动,值 4。轮廓形状不同,因为与平行于 XY 平面的平面的交点不同。


推荐阅读