毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 教学论文 >> 正文

OpenGL三文数码屋建模 第10页

更新时间:2011-10-21:  来源:毕业论文
(3)ico资源文件
用于存放各个按钮的图片,以供给window类布局使用。
(4)mian函数
定义window对象,设置对象大小、设置为没边框、添加背景和启动画面。

核心代码分析
 对目录中的文件操作
代码:
1. QDir picdir(dir);
2. QStringList filters;
3. filters << "*.bmp" << "*.jpg" << "*.png"<<"*.gif";
4. picdir.setNameFilters(filters);
5. QFileInfoList list = picdir.entryInfoList();
6. QFileInfo fileInfo = list.at(0);
7. QString  path=fileInfo.filePath();
8. pixmap.load(path);

代码功能详解:毕业论文http://www.youerw.com/
第 1 行:定义了一个目录picdir和字符串列表filters,其中dir是一个字符串,记录的是目录的路径。
2到4行:到给filters添加内容,把目录中的后缀名为bmp、jpg、png、gif的所有文件名添加到filters列表中,然后给picdir目录设置文件名,这里的文件名就是字符串的列表中的文件名,这里的作用相当于选出目录中的图片,然后把图片名存在picdir目录中。
5到6行:定义QfileInfoList和QfileInfo两个对象list和fileInfo,QfileInfoList是一个文件信息列表,而QfileInfo则是信息列表中的一个文件信息。把目录中的所有文件的信息输入list中,并把第一个文件信息放在fileInfo中。这里的功能相当于定义一个列表把所有文件的信息放在里面,另外定义一个变量来存储要用到的文件信息。
7到8行:定义字符串path存储文件信息fileInfo的路径,然后用pixmap.load()函数来把图显示出来。

此段代码的作用是把目录的相关信息加到列表中,并定义一个信息文件来从列表中取出相应的文件信息,然后交给pixmap来画图。后面的上一幅、下一幅、旋转、放大、缩小等功能就纯是2D画图的事了,与文件相关信息就没关系了。原文请+QQ32,49114优.文^论,文'网

 画图事件
代码:
void RenderArea::paintEvent(QPaintEvent * /* event */)
{
    QPainter painter(this);
    if(trans!=0)
    {
        painter.translate(size().width()/2, size().height()/2);
        painter.rotate( 90*(trans%4) );
        painter.translate(-size().width()/2, -size().height()/2);
    }
    int x=( size().width()-(int)(pixmap.width()*w) )/2;
    int y=( size().height()-(int)( pixmap.height()*h))/2;
    painter.drawPixmap(x,y,(int)(pixmap.width()*w),(int)(pixmap.height()*h),pixmap,0,0,0,0);
}
这是一个画图事件,处理的事件有:旋转、放大、缩小和显示的功能。是用Qpainter类来实现,以下为代码作详细分析:
变量介绍:
Trans    记录第几次点击旋转按钮
pixmap.width()     加在画师中的图片的宽
pixmap.height()  加在画师中的图片的高
size().width()  底板的宽
size().height()  底板的高
w     图片宽放大的倍数
h     图片高放大的倍数

处理旋转代码:
if(trans!=0)
{毕业论文http://www.youerw.com/
painter.translate(size().width()/2, size().height()/2);
    painter.rotate( 90*trans);
    painter.translate(-size().width()/2, -size().height()/2);
}
用trans记录第几次点击旋转的按钮,如果有点击则trans不为0,我要实现的效果是点击一次则旋转90度,要用rotate(int angle)函数,里面的参数是旋转的度数,所以只需painter.rotate( 90*trans)就能实现点击一次在原来的基础上旋转90度。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 

OpenGL三文数码屋建模 第10页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。