LabVIEW论坛
登录
直播中
荣琪
8年用户
689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信
关注
[资料]
荣小菜补钙记第59期_LabVIEW之二维图片拖拽与缩放
鼠标
图像缩放
荣小菜补钙记第59期_
labview
之二维图片拖拽与缩放
同步更新于 WeChat:荣小菜在补钙
大家好,我是荣小菜,本期用一个小Demo讲解在二维图片控件中实现图片拖拽的缩放。
1.
缩放功能
实现二维图片缩放功能通过设置图片控件的“缩放因子”属性实现,通过触发鼠标滑轮事件,上滚时Delta值为1,下滚时Delta值为-1,每次滚动缩放因子变化|0.1|,设置缩放因子上限为10(放大10倍),下限为0.1(缩小10倍)。
滑轮动作
2.
拖拽功能
拖拽主要由鼠标按下,鼠标移动,鼠标释放3个动作实现。
先看
鼠标按下
,鼠标按下后进入可拖拽状态,并通过当前原点坐标和鼠标坐标计算两者相对坐标,“相对位置”后续将继续使用。
注意1:原点坐标为图片左上角坐标。
注意2:本Demo实现两种拖拽方式,可选择是否反转。
鼠标按下
实现图片移动的关键是根据鼠标移动修改图片原点位置
鼠标移动
时,使用“当前鼠标坐标”与上一步骤中计算出的“相对位置”即可算得图片“原点坐标”。
实现反转拖拽,则将减数和被减数位置互换即可。
鼠标移动
完成拖拽后,
鼠标释放
,此时程序进入“不可拖拽”状态,鼠标移动事件可以被触发,但不执行相关逻辑。当然,比起这种使用布尔状态量的方法,我们也可以通过动态注册、注销事件的方式实现,详见LabVIEW自带范例“动态事件生成”。
鼠标释放
3.
复用性
稍微做一些
复用性
的设计,这里简单设计三个可重用Vi,分别为“INIT”、“CORE”和“STOP”,用户想要让某图片控件具备缩放和拖拽功能,只需使用这3个函数即可(见
MAIN函数
)。需要注意的是,每用一个INIT函数和CORE函数,必须使用一个STOP函数来停止。下面进行详细讲解。
MAIN程序框图
先看
“INIT”函数
,关键点为通过控件引用注册系列动态事件,每次调用该函数即可为不同控件注册相关功能事件;另一关键点为注册STOP用户事件,我们可以通过触发该事件来停止CORE中的循环(该设计在操作者框架中十分常用)。
INIT后面板
调用INIT后必须接着调用
CORE函数
,该函数主要功能在第1、2节中已经讲解,此处重点是实现动态事件的逻辑流程和响应STOP用户事件的停止流程。当STOP用户事件触发时,销毁注册的动态事件和用户事件。
CORE后面板
最后看
STOP函数
,简单但关键,必须调用,产生STOP用户事件,是程序顺利停止的关键。
STOP后面板
4.
Demo演示
下面进行Demo演示,缩放、正向拖拽、反向拖拽。
Demo
本期就到此结束啦,测试Demo已上传,感兴趣的同学可以看看,也期望各位大神能帮忙前来指教,进一步分享更多更有趣的程序。
分享开源免费,共同学习进步^_^
回帖
(2)
荣琪
2023-5-26 22:09:07
不知道为什么我这边没有上传附件的选项了,目前只能用网盘发Demo,微信公众号有同步更新的文章,里面有链接。
不知道为什么我这边没有上传附件的选项了,目前只能用网盘发Demo,微信公众号有同步更新的文章,里面有链接。
举报
3708407
2023-11-5 21:05:16
看不到程序附件在那里啊,,,
看不到程序附件在那里啊,,,
举报
更多回帖
rotate(-90deg);
回复
相关帖子
鼠标
图像缩放
荣
小菜
补钙
记
第
59
期
_
LabVIEW
之二维
图片
拖拽
与
缩放
Demo
2023-05-19
3427
荣
小菜
补钙
记
第
55
期
: AF消息传递太麻烦?试试接口吧!
2022-01-23
7595
荣
小菜
补钙
记
第
54
期
:报文序列生成器3
2022-01-07
5499
荣
小菜
补钙
记
第
53
期
:报文序列生成器2
2021-12-20
5847
荣
小菜
补钙
记
第
49
期
:报文合成与解析之统型设计3
2021-11-06
4727
荣
小菜
补钙
记
第
35
期
:基于
LabVIEW
Actor Framework的连续测量和记录系统3
2021-06-08
7238
荣
小菜
补钙
记
第
32
期
:
LabVIEW
之如何实现应用程序最小化托盘
2021-05-15
7547
荣
小菜
补钙
记
第
21
期
:
LabVIEW
之提高编程速度的5个小技巧
2021-03-16
7393
荣
小菜
补钙
记
第
20
期
:UI设计之分隔栏操作
2021-03-12
7224
荣
小菜
补钙
记
第
13
期
:设置
LabVIEW
树形控件背景色
2021-02-27
7531
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分