实验二交互与动画.doc

实验二交互与动画.doc

ID:57407612

大小:231.50 KB

页数:15页

时间:2020-08-16

实验二交互与动画.doc_第1页
实验二交互与动画.doc_第2页
实验二交互与动画.doc_第3页
实验二交互与动画.doc_第4页
实验二交互与动画.doc_第5页
资源描述:

《实验二交互与动画.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二-交互与动画————————————————————————————————作者:————————————————————————————————日期:实验二交互与动画姓名叶传军学号E11414103得分【实验目的】1.掌握基本交互式程序的编程方法。2.掌握基本动画程序的编程方法。一.实验题目1.阅读squareMouse.c,回答下面的问题:(1)glFlush()函数和glClear(GL_COLOR_BUFFER_BIT)函数的作用分别是什么?(可将这两个函数注释掉,和注释前的结果对比)(2)修改squareMouse.c,分别实

2、现如下功能:a.通过利用移动回调函数可以在不释放鼠标按钮的情况下,连续画一系列正方形;b.应用被动移动回调函数,可以不用按鼠标按钮就可以连续画正方形;c.按下Alt+c或Alt+C时,终止程序。2.编写一个程序,实现如下的功能:连续两次单击鼠标左键,以两次单击的位置作为矩形的对角线来绘制一个矩形,且该矩形各边与屏幕对齐。鼠标右键用于程序的退出。(1)将绘制矩形的函数放在鼠标回调函数中完成。(2)修改(1)中的程序,将绘制矩形的函数放在显示回调函数中完成。鼠标回调函数用于状态的修改,并调用显示回调函数(利用glutPostRedisplay()

3、)。3.将正方形旋转的程序squareRotate.c改成正六边形旋转的程序。4.创建一个绘图程序,使得可用鼠标来创建一些简单的形状,如线段,三角形,矩形,并可通过菜单来实现下列功能。要求:(1)可改变形状的颜色。(2)可改变形状的大小。(3)可移动形状。(4)可旋转形状。(5)你能想到的任何功能。二.设计思想本次实验主要通过改变几个主要回调函数来实现一些图形的绘制,主要使用的回调函数有glutMouseFunc();鼠标回调函数glutMotionFunc();鼠标移动回调函数glutPassiveMotionFunc();被动移动回调函数

4、glutKeyboardFunc();键盘回调函数voiddisplay();显示回调函数其中应注意每个函数参数的含义以及glutPostRedisplay()函数与display()函数的使用。三.程序清单1.阅读squareMouse.c,回答下面的问题:(1)glFlush()函数和glClear(GL_COLOR_BUFFER_BIT)函数的作用分别是什么?(可将这两个函数注释掉,和注释前的结果对比)glFlush()函数的作用是清空OPENGL命令缓冲区,执行OPENGL程序。GlClear(GL_COLOR_BUFFER_BIT)

5、函数的作用是用当前背景色填充窗口。(2)修改squareMouse.c,分别实现如下功能:a.通过利用移动回调函数可以在不释放鼠标按钮的情况下,连续画一系列正方形;#include"stdafx.h"#include#include#include/*globals*/GLsizeiwh=300,ww=300;/*initialwindowsize*/GLfloatsize=5.0;/*halfsidelengthofsquare*/voiddrawSquare(intx,inty){

6、y=wh-y;glColor3ub((char)rand()%256,(char)rand()%256,(char)rand()%256);//glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(x+size,y+size);glVertex2f(x-size,y+size);glVertex2f(x-size,y-size);glVertex2f(x+size,y-size);glEnd();glFlush();}/*rehapingroutinecalledwheneve

7、rwindowisresizedormoved*/voidmyReshape(GLsizeiw,GLsizeih){/*adjustclippingbox*/glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(0.0,(GLdouble)w,0.0,(GLdouble)h,-1.0,1.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();/*adjustviewportandclear*/glViewport(0,0,w,h);glClearCol

8、or(0.0,0.0,0.0,1.0);glClear(GL_COLOR_BUFFER_BIT);glFlush();/*setglobalsizeforuseby

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。