MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码

       图片显示有两种组件,坐标轴组件和图像组件。本文介绍两种组件显示图形的特点,并给出了图像等跟随界面比例放大的相关代码。

目录

一.坐标组件

a.坐标组件的特点:

b.坐标组件显示图形代码

二.图形组件

a.Image组件的特点:

 b,等比例补充代码


一.坐标组件

MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码_第1张图片

a.坐标组件的特点:

1.无法立即显示图像,需要运行代码语句后方可执行。
2.图像显示的精确位置,比较模糊(对排版来说是个比较棘手的问题),弥补方案:可以用图像标题作为位置的一个初步参考位置
3.将通过UIfigure组件属性中AutoResizeChildern打钩后(默认),可跟随窗口智能改动大小,并且包含Toolbar功能(放大、缩小、保存等),如图1.(b):

MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码_第2张图片

                                                          (a).坐标组件设计视图

MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码_第3张图片

                                                               (b).Toolbar     

                                                                     图1

b.坐标组件显示图形代码

以相同路径且图像名称为"圆形单层绕组.jpg"作为例子,坐标组件的插入图片代码如下:
 im=imread("圆形单层绕组.jpg");
 imshow(im,'Parent',app.UIAxes);

二.图形组件

MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码_第4张图片

a.Image组件的特点:

 1.可以直接显示图片,方便软件页面布局,方法如图下图所示。

MATLAB APP DESIGNER 中,图像显示组件介绍及补充代码_第5张图片也可以代码插入图片,以相同路径且图像名称为"圆形单层绕组.jpg"作为例子,插入代码如下:
 app.Image.ImageSource="圆形单层绕组.jpg";
 2.AutoResizeChildern模式下,图片大小无法智能改动,这里提供一份等比例放缩思路;

 b,等比例补充代码

思路如下:
 1.在属性中添加首次变换不修改标识符START-----UIFIgure打开时,UIFIgure打开时,UIFIgureSizechanged回调函数就会就会执行,此次要保证尺寸不修改,故需要一个标识符。
 2.在属性中添加UIFIgure的尺寸存储相量bb_1
 3.计算UIfigure尺寸变化的比例kk1 kk2
 4.进行IMAGE 图片换算

相关代码如下:

 1.添加属性
     properties (Access = private)
        START=1;       %规避初始化标识符,初始为1:刚打开软件;在startupFcu中赋0;表示,软件已经打开,接下来尺寸改变,要变换IMAGE的尺寸。
        bb_1=[0 0 0 0]  %设置UIFIgure的尺寸存储初始化相量
    end
 2.startFcu中执行
 function startupFcn(app)
            app.START=0;                       %startupFcu中赋0;表示,软件已经打开,接下来尺寸改变,要变换IMAGE的尺寸。
            app.bb_1=app.UIFigure.Position;   %UIFIgure的尺寸存储相量
 end
 3.UIFigureSizeChanged中
 function UIFigureSizeChanged(app, event)
            bb2=app.UIFigure.Position;%提取新的UI尺寸
            aa2=app.Image.Position;%提取image尺寸
            %计算UI尺寸变化比例
            kk1=bb2(3)/app.bb_1(3);
            kk2=bb2(4)/app.bb_1(4);
            app.bb_1=bb2;%将UI尺寸付给全局变量保存
            if  app.START==0      %规避打开程序时的UI尺寸变化
                aa2(1)=aa2(1)*kk1;
                aa2(2)=aa2(2)*kk2;
                aa2(3)=aa2(3)*kk1;
                aa2(4)=aa2(4)*kk2;
                app.Image.Position=aa2;%赋值image新的尺寸
              
            end
 end

注: 当 'AutoResizeChildren' 设置为 'on' 时,'SizeChangedFcn' 回调将不会执行。放缩界面时,两种方案不可共用

你可能感兴趣的:(matlab,app,desiger,matlab,matlab)