新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式图片滑动的3D桌面设计方案

嵌入式图片滑动的3D桌面设计方案

作者:时间:2012-03-29来源:网络收藏

引 言

本文引用地址:http://www.eepw.com.cn/article/149319.htm

在很多设备中,一个良好的是最重要的人机交互方式;在一些消费电子产品中,一个好的可以让用户具有更好的使用体验,操作更方便。与PC的一些重量级的桌面相比,本文所讨论的桌面属于轻量级桌面,占用资源很少,是一个完全的应用程序。目前,在一些高端手机上已经采用了这种桌面方式,用户可以通过触摸屏等设备轻易地访问应用程序。图1是桌面的一种。

实现如图1所示的3D桌面,传统需要借助于OpenGL来实现这种3D效果,但是在设备中资源较紧张,难以完美地支持OpenGL.因此,采取了QT来实现,并且在开源项目pictureflow的基础上进行移植修改。

图1 图片滑动3D桌面

图1 3D桌面

1 QT简介

QT是一个跨平台的C++图形用户界面库,由奇趣公司出品,支持所有Unix系统和绝大部分版本的Windows平台。QT具有优良的跨平台特性和丰富的API函数,支持2D/3D图形渲染。

2 开源项目pictureflow

pictureflow是一个基于QT编写的开源项目,可以用3D的效果来动态显示图片,经过渲染之后,每张图片均显示成带有倒影的3D图片。pictureflow的渲染算法非常精简,易于移植,再加上QT本身的跨平台性,因此可以运行于不同型号的手机平台或者其他手持设备之上。它具有快速响应,无需浮点操作、OpenGL以及3D硬件加速等特点。

2.1 系统框架

pictureflow 主要由类SlideInfo、PictureFlowState、PictureFlowAnimator和PictureFlowSoftwareRenderer构成,如图2所示。其中每个SlideInfo实例对应着一张图片,包含了图片的偏转角度和坐标等信息;PictureFlow-State记录了所有图片的信息;PictureFlowAnimator包含图片的移动功能实现;PictureFlowSoftwareRenderer实现了对图片的渲染。PictureFlowPrivate类含有4个指针,分别指向了上述3个功能类和1个定时器;而Picture-Flow类是作为整个系统的接口类,维护着所有的页面集合以及事件的响应。

图2 pictureflow系统类图

图2 pictureflow系统类图

 2.2 渲染算法

因为每张页面均有一张倒影,程序采用了一种模糊渲染算法,得到了页面的模糊倒影。在算法中,采用了行列分离的方法进行渲染,即取出源图片的某一像素点之后,依次获得该像素点的同一行的像素平均值作为目标点;然后再依次取出源图片的像素点,获得该像素点的同一列的像素平均值作为目标点。上述操作即处理流程,根据目标平台的性能可以将上述操作循环执行多次,以获得最佳模糊效果。得到页面的模糊倒影之后,程序以某个角度将页面连同倒影一起显示。具体代码如下:

2.3 事件响应

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

c++相关文章:c++教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭