Matlab画图让坐标轴单位长度相同 您所在的位置:网站首页 geogebra如何调整y轴单位长度 Matlab画图让坐标轴单位长度相同

Matlab画图让坐标轴单位长度相同

2024-01-30 08:21| 来源: 网络整理| 查看: 265

让坐标轴单位长度相同

今天画开封铁塔的模拟图,代码如下:

clc clear close all load A_1986 c1 = 1:8:104; c2 = 8:8:104; C = [c1;c2]'; x = A_1986(:,1);y = A_1986(:,2);z = A_1986(:,3); x_center = center_86(:,1);y_center = center_86(:,2);z_center = center_86(:,3); figure(1) H(1) = plot3(x,y,z,'bo'); for i = 1:13 line([x(C(i,1):C(i,2));x(C(i,1))],[y(C(i,1):C(i,2));y(C(i,1))],[z(C(i,1):C(i,2));z(C(i,1))]) end hold on H(2) = plot3(x_center,y_center,z_center,'r*'); H(3) = plot3(real_tajian_86(1),real_tajian_86(2),real_tajian_86(3),'r^'); title('开封铁塔1986年三维图') legend(H,{'塔每层的测量点','塔的中心点','塔尖'},'Location','NorthEast'); grid on

画出来的图如下: 开封铁塔模拟图 感觉铁塔又胖又矮。。。丑一批,发现是坐标轴单位长度不同造成的。 上网找答案,发现只要加上 axis equal 就ok,于是改之后的代码为:

clc clear close all load A_1986 c1 = 1:8:104; c2 = 8:8:104; C = [c1;c2]'; x = A_1986(:,1);y = A_1986(:,2);z = A_1986(:,3); x_center = center_86(:,1);y_center = center_86(:,2);z_center = center_86(:,3); figure(1) H(1) = plot3(x,y,z,'bo'); for i = 1:13 line([x(C(i,1):C(i,2));x(C(i,1))],[y(C(i,1):C(i,2));y(C(i,1))],[z(C(i,1):C(i,2));z(C(i,1))]) end hold on H(2) = plot3(x_center,y_center,z_center,'r*'); H(3) = plot3(real_tajian_86(1),real_tajian_86(2),real_tajian_86(3),'r^'); title('开封铁塔1986年三维图') axis equal legend(H,{'塔每层的测量点','塔的中心点','塔尖'},'Location','NorthEast'); grid on

画出来的图如下: 开封铁塔

之间,还修改过一次,看到Matlab论坛有大佬说加上这段:

xtick = get(gca,'XTick'); ytick = get(gca,'YTick'); ztick = get(gca,'ZTick'); %ytick间距,并将xtick间距设为与y相同 N = (max(xtick) - min(xtick))/(ztick(2)-ztick(1)); N_ = (max(ytick) - min(ytick)) / (ztick(2) - ztick(1)); xtick = xtick(1) + (0:(N - 1))*(ztick(2)-ztick(1)); ytick = ytick(1) + (0:(N_ - 1)) * (ztick(2) - ztick(1)); set(gca,'XTick',xtick');%此时横轴和纵轴坐标刻度一致 set(gca,'YTick',ytick');

但是这段的效果是: 失败效果图 分析原因: 这段代码是让坐标轴单位长度在数值上相等但是视觉上却不是相等 axis equal 是让坐标轴单位长度在视觉上相等在数值上也是相等的



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有