plot - 八度:在 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] 来翻译它。
编辑:
例如,请参见此处。将蓝色椭圆移动到黄色椭圆的位置。
谢谢
卡尔
解决方案
正如 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 平面的平面的交点不同。
推荐阅读
- winforms - 如何更改数据表中现有行的列参数?
- angular - 在Angular中路由到子元素时隐藏父元素
- qt - 如何访问 DelegateModel 委托中的部分属性
- sql-server - 在同一台 CENTOS 7 机器上安装两个版本的 MSSQL SQL Server 2017 和 SQL Server 2019
- reactjs - react 即使在删除后它仍然处于检查状态
- android - 无法显示第二个视图。可能隐藏在第一视图下?
- android - 在 gradle 构建期间检索 AWS 数据
- ajax - Ajax laravel 不在控制台中返回单条记录,但在 html 中没有返回所有数据
- google-bigquery - 使用 Cloud Deployment Manager 创建 BigQuery 物化视图
- visual-studio-code - 在 Visual Studio Code 中设置全局环境变量