MATLAB App Designer入门实战(三)
这期文章中的问题虽然比较少,但是综合性较强。
系列文章目录:
- MATLAB 手把手带你制作第一个APP designer程序(电子词典)
- MATLAB App Designer入门实战(一)
- MATLAB App Designer入门实战(二)
- MATLAB App Designer入门实战(三)
- MATLAB App Designer 特别篇:RGB颜色提取器
入门实战第三弹——连连看小游戏App
目录
- 13.在APP Designer获取文件夹内所有图片链接
- 14.如何确定鼠标点击图片的序号
- 15.如何在图片上方绘制线条
13.在APP Designer获取文件夹内所有图片链接
dir函数在APP Designer中依旧可以用,例如我们想要获得名为’图片‘文件夹中的所有jpg图片的链接,则可以通过以下步骤:
path=‘图片文件夹的链接地址’;
例如:
path=‘E:\MATLAB\R 2019b\bin\连连看\图片’;
通过dir函数获取jpg图像的所有信息
picInformation=dir(fullfile(path,’*.jpg’));
提取其中第i张图的名称并合成完整路径:
picPath=[path,’’,picInformation(i).name];
14.如何确定鼠标点击图片的序号
这个问题的提出是因为连连看足足有6x8=48张图片
↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓
满足以下两个条件的图片组在被点击时很难确定其序号
- 图片量很大
- 图片的位置并不整齐
这时候我们很轻易地就有一个想法,我们为什么不把图片做成按钮?要实现这个功能我们便考虑使用UIimage的ImageClicked回调,但是有一个问题,就是图片量很大,我们就需要批量创建图片,但是批量创建的图片需要写在startupFcn中,startupFcn中创建的控件无法直接为其创立回调,这时候又要用到问题10中的虚控件,创造一个不可视的UIimage控件增添回调,并让批量创建的控件与其共享一个回调,步骤如下:
一 在startupFcn中批量创建控件并赋予属性
二 拖拽创造UIimage对象并隐藏
.
.
三 为虚控件增添回调并让批量创建控件与其共享回调
.
像上期说的一样自主创建的控件要增添回调需要借用
createCallbackFcn,因此我们可以在循环中加一行
set(app.drawPicHdl(i,j),'ImageClickedFcn',createCallbackFcn(app, @VirtualImageClicked, true))
这时候我们观察一下创建的回调的结构:
发现通过UIimage对象创建的回调不像通过image对象创建的回调一样具有object输入变量,但是所幸还有一个event可以做一下文章,我们查看一下event的属性发现:
发现它具有一个Source属性,指向的正是原图形对象,而原图形对象能够作为有效地辨别序号的信息有:
- Tag : 标签
- UserData : 用户数据
- Position : 图形位置
这仨属性能够用来分开哪个图是哪个图,我Tag其实用的比较多,但是如果你的序号形式为数对的话,会发现,UserData真香。
四 为控件增添UserData属性
就多写一行呗,美滋滋
这样我们就可以在ImageClicked回调,通过:
event.Source.UserData
了解到到底点击了哪个图片了:
15.如何在图片上方绘制线条
当UIAxes在UIimage或其他控件下面时,画出的图像也是在UIimage或其他控件下面,当UIAxes在他们上面时 ,便会出现以下状况:
我们很自然的想到如果把它调成透明的不就好了,但是很遗憾我们发现,中间白色区域可以调成无色的:
但是背景色除了无色啥颜色都能调。。。。。。。。。。。。。‘。。。。。。。。。。。。。
直接画曲线的想法算是破灭了,但我们。。。。。。还有另一个想法那就是。。。。。uilabel,没错就是能写字能变色的小标签,直线可不就是一个窄窄的长方形嘛(捂脸),不过需要注意的是uilabel也是有边框的,而且左右和上下边框宽度还不一样,这就需要在作图时适当调整数据,通过uilabel我们就能实现连连看的连线功能啦:
相信认真看完这篇文章的你已经有了还原该mlapp文件的能力,在这里提供m版和mlapp版的连接:
MATLAB 连连看小游戏m文件链接:MATLAB连连看小游戏
MATLAB 连连看小游戏mlapp文件链接:MATLAB连连看小游戏APP(mlapp)
MATLAB App Designer入门实战(三)相关推荐
- MATLAB App Designer入门实战(一)
最近也是在研究MATLAB App Designer,开这样的一个系列主要是为了记录我在研究App Designer时遇到的一部分问题的解决,和一部分有趣的想法,每一篇文章会展示如何将一个项目mlap ...
- MATLAB App Designer入门实战(二)
为了方便汇总,这里的目录是接着第一篇来的. 系列文章目录: MATLAB 手把手带你制作第一个APP designer程序(电子词典) MATLAB App Designer入门实战(一) MATLA ...
- MATLAB App Designer 特别篇:RGB颜色提取器
在大家的要求下,我将RGB颜色提取器App化了,并做出了以下几个改进: 保留小数位数标准化 颜色格式多样化: 支持16进制码及HSV格式 数据输出标准化: 其他的用法可以看之前GUI版本的相关文章: ...
- Matlab App Designer 【03】绘制基本测试函数图像以及摸鱼听歌
绘制基本测试函数图像以及摸鱼听歌 一.绘制基本测试函数图像 1.函数的定义与调用 2.保存图片到指定路径 3.图像回调 二.复现网易云音乐播放器 1.web网络请求API 2.try catch en ...
- 《MATLAB App Designer从入门到实践》随书源代码
GUIDE已经被MATLAB抛弃了,你还不知道吗?App Designer才是发展的方向 目前市面上MATLAB GUI编程的书籍琳琅满目,但大多数是基于GUIDE开发的,MATLAB从2016年开始 ...
- MATLAB App Designer —— 手撕代码学习总结
文章目录 MATLAB App Designer 官方文档 MATLAB App Designer 官方示例 (一) (1.1)csvread() 函数 (1.2)xlsread() 函数 (1.3) ...
- MATLAB App Designer GUI开发从0到1(二)
文章目录 前言 一.开关以及旋钮 1. 左上角:旋钮 2.右上角:90度仪表 3.左下角:分档开关 4.右下角:开关 5.对旋钮微调 二.画图 1. 普通画图 2.添加小组件 三.回调函数 简单的回调 ...
- 汽车各档爬坡度曲线matlab,基于MATLAB App Designer的汽车爬坡能力建模与仿真
1. 引言 汽车常常需要在不同区域的不同道路上行驶,尤其在山区道路上,坡陡路窄,汽车必须具有一定的爬坡能力,爬坡能力通常由最大爬坡度来衡量,最大爬坡度是汽车动力性能的重要指标之一.为此开展了基于MAT ...
- Matlab App Designer编译打包exe后读取文件路径问题
首先,标题略长-- 其次,当你看到这个长长的标题并点进来的时候:bro,恭喜你终于找到了一个行之有效的解决方案! ~好了,下面我们言归正传. 关于MATLAB App Designer自身的介绍不是此 ...
最新文章
- 专用计算机教室设备,计算机教室专用规章制度
- 用100元买100支笔c语言,用C编程!有100块钱,买100支笔,其中钢笔3元,圆珠笔2元,铅笔0.5元,问各买多少支?...
- ASP.NET Google Maps Javascript API V3 实战基础篇一检测用户位置
- mangos服务器架构
- asp.net,Ajax发送异步请求后台修改数据
- 爬虫—分析Ajax爬取今日头条图片
- 3G手机J2ME开发环境搭建(eclipse3开发j2me环境搭建)
- Struts1 和 Struts2
- 夜神模拟器连接手柄无反应_夜神模拟器手柄设置
- php 图片外链限制,将新浪微博图床图片保存到本地解决限制外链的方法
- ArcGis 加载tif,tpk,shp格式文件
- 导航算法A*的简单实现
- BeautifulSoup中find和find_all的使用
- (硬件设计)老工程师的经验之道
- MLDonkey,比aMule好的BT软件
- NOIP2017旅游(过节)总结
- JDBC驱动加载机制详解以及spi机制
- VMware虚拟机安装ghost系统
- 数据结构课设 词频统计
- 卡巴斯基高管发微博劝奇虎周鸿祎:回头是岸
热门文章
- 申宝正规股票煤炭股超跌反弹
- 如何用python制作小游戏
- 一个被忽视的小点——函数的单调性
- 养生主——离散数学篇
- Google帝国的接班人,凭什么是他?
- TypeError: The view function for did not return a valid response. The function either returned None
- 【微信】公众号群发相关使用
- 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为 01~33,蓝球号码范围为 01~16。双色球每期从 33 个 红球中开出 6 个号码,从 16 个蓝球中开出 1 个号码作为中奖号码,双色球玩
- 解酒方法最全妙招 很灵的!
- 复旦计算机学院博士张磊,张磊-计算机与信息工程学院官网