墙:在Matlab地图环境中显示垂直平面
我想在Matlap Mapping工具箱中的地理投影图形中绘制垂直平面。想象一下一个立方体的四个垂直面,就像一个立方体。问题在于Matlab无法正确绘制所有面,如以下示例所示: 使用墙:在Matlab地图环境中显示垂直平面,matlab,3d,matlab-figure,geo,Matlab,3d,Matlab Figure,Geo,我想在Matlap Mapping工具箱中的地理投影图形中绘制垂直平面。想象一下一个立方体的四个垂直面,就像一个立方体。问题在于Matlab无法正确绘制所有面,如以下示例所示: 使用geoshow的最小代码示例: xf = [ 0, 1, 1, 0; 1, 1, 0, 0; 1, 1, 0, 0; 0, 1, 1, 0 ] yf = [ 0, 0, 1, 1; 0, 1, 1, 0; 0, 1, 1, 0;
geoshow
的最小代码示例:
xf = [ 0, 1, 1, 0;
1, 1, 0, 0;
1, 1, 0, 0;
0, 1, 1, 0 ]
yf = [ 0, 0, 1, 1;
0, 1, 1, 0;
0, 1, 1, 0;
0, 0, 1, 1 ]
zf = [ 0, 0, 0, 0;
0, 0, 0, 0;
.01, .01, .01, .01;
.01, .01, .01, .01 ]
figure
axesm('miller');
geoshow(xf,yf,zf,'DisplayType','surface','FaceColor','red','FaceAlpha',0.4);
xlabel('lat')
ylabel('lon')
zlabel('alt')
view(-140,-60);
《地球展示》杂志说:
geoshow(lat、lon、Z)投影并显示地理定位的数据网格
Z:M-x-N阵列。可能包含NaN值
我的猜测是
Z
变量的定义必须不同,但是如何定义呢?还是有其他解决办法?我真的很想把头撞到墙上…我认为在你的例子中有两件事出错了:
xf
、yf
和zf
中有四行。。。在水平和垂直相邻点之间绘制边xf
(类似于yf
和zf
)的最后一列应与第一列相同,以“关闭”框(即绘制缺少的一面垂直墙)xf
、yf
和zf
,如下所示:
=2×n矩阵,顶行全部为零,底行全部为墙的所需高度(对于您,为0.1;对于我下面的示例,为1)zf
=2×n矩阵,顶行和底行相同,给出定义区域的正方形的纬度坐标xf
- 类似地,
=2×n矩阵,顶行和底行相同,给出定义区域的正方形的经度坐标yf
、xf
和yf
的第一列和最后一列应与“关闭”房间相同zf
对应于此处实际为xf
坐标的纬度,反之亦然y
yf
geoshow
我从一面墙开始:
geoshow([1 1; 1 1], [0 1; 0 1], [0 0; 1 1], ...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
请注意,第一个输入(全部1)对应于y值,因为它们是纬度:
两面墙:
我在每个xf
、yf
和zf
中添加了另一列:
geoshow([1 1 0; 1 1 0], [0 1 1; 0 1 1], [0 0 0; 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0; 1 1 0 0],[0 1 1 0; 0 1 1 0],[0 0 0 0; 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0 1; 1 1 0 0 1],[0 1 1 0 0; 0 1 1 0 0],[0 0 0 0 0; 1 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
(注意:为了保持一致性,我在这里调整了轴以匹配第一张图片)
三面墙:
我在每个xf
、yf
和zf
中添加了另一列:
geoshow([1 1 0; 1 1 0], [0 1 1; 0 1 1], [0 0 0; 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0; 1 1 0 0],[0 1 1 0; 0 1 1 0],[0 0 0 0; 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0 1; 1 1 0 0 1],[0 1 1 0 0; 0 1 1 0 0],[0 0 0 0 0; 1 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
(注:“盒子”上没有顶部)
四面墙:
我在每个xf
、yf
和zf
中添加了另一列(第一列的副本):
geoshow([1 1 0; 1 1 0], [0 1 1; 0 1 1], [0 0 0; 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0; 1 1 0 0],[0 1 1 0; 0 1 1 0],[0 0 0 0; 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
geoshow([1 1 0 0 1; 1 1 0 0 1],[0 1 1 0 0; 0 1 1 0 0],[0 0 0 0 0; 1 1 1 1 1],...
'displaytype','surface','facecolor','red','facealpha',0.5);
view(3); xlabel('x'); ylabel('y'); zlabel('z');
Ta-da要说服您盒子上没有盖子: