matlab 如何用 surfc 或 contour的 等值线图 投影到指定的平面上,而不是z=0的平面上?

matlab 如何用 surfc 或 contour的 等值线图 投影到指定的平面上,而不是z=0的平面上?,第1张

这是原始语句:

[X,Y,Z] = peaks(30);

figure,surfc(X,Y,Z)

colormap hsv

axis([-3 3 -3 3 -10 5])

将等值线图 投影到指定的平面 z=-20:

h = surfc(X,Y,Z);

zdata = get(h(2:end),'zdata');

NewZdata = cellfun(@(x) x(-20)/zdata{1}(1),zdata, 'UniformOutput',false); % x(-20)

for k = 1:length(h)-1;

set(h(k+1),'zdata',NewZdata{k});

end;

将等值线图 投影到指定的平面 z=+20:

h = surfc(X,Y,Z);

zdata = get(h(2:end),'zdata');

NewZdata = cellfun(@(x) x(20)/zdata{1}(1),zdata, 'UniformOutput',false); % x(+20)

for k = 1:length(h)-1;

set(h(k+1),'zdata',NewZdata{k});

end;

修改x(+20)括号内的值,历将等值线图 投影到指定的平面。

hold on;

plot3(x,y,zeros(1,length(x)),'r');

plot3(x,zeros(1,length(x)),z,'c');

plot3(zeros(1,length(x)),y,z,'g');

hold off;

第一问:不能用通常的三维命令来绘制椭圆球体,应用专用的绘制椭圆球体命令ellipsoid()。更改后的执行代码如下,

运行结果

第二问:复制你的代码整理后,不存在赋值的时候有点小问题。不知你的格式是否与我的一样

热心网友最快回答

高斯-克吕格(Gauss-Kruger)投影与UTM投影(Universal Transverse Mercator,通用横轴墨卡托投影)都是横轴墨卡托投影的变种,目前一些国外的软件或国外进口仪器的配套软件往往不支持高斯-克吕格投影,但支持UTM投影,因此常有把UTM投影当作高斯-克吕格投影的现象。从投影几何方式看,高斯-克吕格投影是“等角横切圆柱投影”,投影后中央经线保持长度不变,即比例系数为1;UTM投影是“等角横轴割圆柱投影”,圆柱割地球于南纬80度、北纬84度两条等高圈,投影后两条割线上没有变形,中央经线上长度比09996。从计算结果看,两者主要差别在比例因子上,高斯-克吕格投影中央经线上的比例系数为1, UTM投影为09996,高斯-克吕格投影与UTM投影可近似采用 X[UTM]=09996 X[高斯],Y[UTM]=09996 Y[高斯],进行坐标

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12154011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存