交互投影程序QT界面逻辑与交互方式(实训)

作为一款投影交互程序,界面逻辑是非常重要的,要考虑到用户可能做出的各种选择与各种情况。

从我们的项目出发,我们采取的交互方法是通过运动模板法获取视频画面用户的实时位置,将用户的实时位置传入电脑屏幕,对应于电脑屏幕中界面中的位置,而电脑屏幕中的画面又被投射到地面上,从而实现用户与地面的交互。当今世界上其他流行的交互方式还有深度检测和压感设备等。

首先第一步是从视频画面到用户电脑的对应。大多数的摄像设备的默认帧大小是960*540的,因为这个大小比较便于用户观察且能保存有足够多的图像信息。当我对图像进行处理时,尝试过将视频大小调整为和电脑屏幕一样大的1920*1080,但是这样会时处理速度大大变慢,因为每一步帧差需要对比的像素变成了原来的四倍,所以最后的解决方案是视频图像大小保持不变,在位置传输时变为原来的二倍。

因为电脑屏幕是1920*1080的横长竖短的矩形,而投影出来的答题区域时横短竖长的梯形形状,由于投影的放射状投射,所以原本的矩形横向被缩短,竖向被拉长,且出现梯形形变的情况在所难免,一定程度上为用户的位置判断增加了困难。


这时,就需要根据情况进行位置对应,采取分段函数将屏幕上的位置与地面上的位置对应起来。

	double yn = (y / 960) * 1920;
	double xn = (x / 540) * 1080;

	if (xn > 250) {
		xn = xn + 200;
		if (xn > 330) {
			xn = xn + 180;
			if (xn > 500) {
				xn = xn + 100;
			}
		}
	}

	if (yn < 250) {
		yn = yn + 50;
		if (xn < 300) {
			xn = xn - 50;
		}
	}

在投影交互中,我们通过在不同位置规定有不同作用的区域,将画面投影出来,如果判断出来用户进入触发事件的区域,则触发相应的事件。

功能选择逻辑:


答题逻辑:



作为一款投影交互程序,要全面考虑到用户可能进行的操作以及对用户的行为提供足够多的指导与反馈。比如说,要保证用户只有在进行完选择并且退回答题区后才会切换到下一个界面,当用户进行完选择后,要对用户选择的选项进行反馈,比如图标变绿色,或者在用户进行答题的答案选择时,选对了正确答案使正确答案变绿,其他不变;而选择了错误答案时选择的错误答案变红,正确答案变绿,以对用户进行提示。

阅读更多
想对作者说点什么? 我来说一句

微信基本交互分析

ABCD_0000 ABCD_0000

2015-06-15 11:05:05

阅读数:914

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭