已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学实验报告1、 实验目的和要求在OpenGL中实现橡皮筋技术画一个矩形,并学会简单的鼠标键盘交互式设备的使用以及交互式绘图技术的实现。2、 实验内容橡皮筋技术的关键在于控制图形随着用户的操作而不断发生变化,此时要擦除原有的图形而形成新的图形。因此在本实验中要学习这种方法,并且画一个矩形。3、 实验步骤1) 相关算法及原理描述鼠标响应函数: void MousePlot在OpenGL程序中,使用鼠标的方法是注册一个鼠标响应函数,对鼠标在窗口范围内的按键按下或松开事件进行处理,其中MousePlot函数是鼠标响应函数,它包含四个参数:void MousePlot (Glint Button,Glint xMouse,GLint action ,Glint yMouse)此外GLUT还提供了两用于处理鼠标移动的注册函数GluMotionfunc(MouseMove)GluPassiveMotionFunc(PassiveMouseMove)2) 程序调试、测试与运行结果分析运行结果如下图,程序调试成功,并且能正常显示,不足之处:调试了半天,右键显示及调节属性的功能仍旧没法实现,最后不得不把那个函数删掉,感觉很是遗憾。4、 实验总结通过本次试验,进一步认识和理解了橡皮筋算法的基本算法思想,同时也对双缓存技术有了一些了解,由于自己不太擅长编程,所以有些功能还不能完全实现,但我会尽自己最大努力来克服自己的编程不足之处,多加练习。 5、附录带注释的源程序#include#include#includeint x0,y0;int x1,y1;int x2,y2;int x3,y3;int width;int height=500;int first=500;int iPointNum = 0; /已确定点的数目int winWidth = 400, winHeight = 300; /窗口的宽度和高度bool have_square=false;int draw=0;bool drawable=true;void Key(unsigned char key, int x, int y) switch(key) case p: if(iPointNum = 0 | iPointNum = 2) iPointNum = 1; x1 = x; y1 = winHeight - y; else iPointNum = 2; x2 = x; y2 = winHeight - y; glutPostRedisplay(); break; default: break; void display(void);void mouse(int button,int state, int x,int y) glEnable(GL_LOGIC_OP); if(have_square = false) if(button = GLUT_LEFT_BUTTON & state = GLUT_DOWN&draw=0) x1=x2=x3=x0 = x; y1=y2=y3=y0 = height-y; glColor3f(0.0,1.0,0.0); glLogicOp(GL_XOR); first = 0; if(button = GLUT_LEFT_BUTTON & state = GLUT_UP&draw=0) glBegin(GL_LINE_LOOP); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); glFlush(); x2 = x; y2 = height-y; x1 = x0; y1 = y2; x3 = x; y3 = y0; glFlush(); glColor3f(0.0,0.0,1.0); glLogicOp(GL_COPY); glBegin(GL_LINE_LOOP); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); glFlush(); have_square=true; else if(button = GLUT_RIGHT_BUTTON & state = GLUT_UP) have_square=false; glutPostRedisplay(); first = 0; void move(int x,int y) if(have_square=true)return; if(first = 1) glBegin(GL_LINE_LOOP); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); glFlush(); x2 = x; y2 = height-y; x1 = x0; y1 = y2; x3 = x; y3 = y0; glBegin(GL_LINE_LOOP); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); glFlush(); first = 1;void display(void) glEnable(GL_COLOR_LOGIC_OP); glClear(GL_COLOR_BUFFER_BIT); glClearColor(1.0,1.0,1.0,1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glFlush(); void myReshape(int w,int h) glClearColor(1.0,1.0,1.0,1.0); glViewport(0,0,w,h); width=w; height=h; glMatrixMode(GL_PROJECTION); glLoadIdentity();/ if(wh) gluOrtho2D(0.0,500.0,0.0,(GLfloat)h/(GLfloat)w*500.0);/ else gluOrtho2D(0.0,(GLfloat)w/(GLfloat)h*500.0,0.0,500.0); gluOrtho2D(0.0,(GLfloat)w,0.0,(GLfloat)h); glMatrixMode(GL_MODELVIEW);void main(int argc,char *argv)void Key(unsigned char key, int x, int y); glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500,500); glutInitWindowPosit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏南通仲裁委员会秘书处招聘(非事业编制)10人考前冲刺密卷(综合题)附答案详解
- 2026年8月鼎和财产保险股份有限公司社会招聘44人备考题库审定版附答案详解
- 2026新疆塔城地区水务集团有限公司招聘2人备考题库(B卷)附答案详解
- 2026江西吉安市旺庐人力资源服务有限公司招募见习人员2人备考题库及参考答案详解AB卷
- 2026年蚌埠市怀远县公开竞聘省示范高中副校长3人考前冲刺密卷完整版附答案详解
- 2026自贸区川南临港片区(泸州综合保税区)产业发展服务专员招聘4人考前冲刺试卷(综合卷)附答案详解
- 2026广东广州医科大学附属第二医院诚聘临床科室主任、副主任9人考前冲刺试卷【达标题】附答案详解
- 2026年西藏民族大学教职工招聘(44人)模拟试卷带答案详解(巩固)
- 2026陕西延安市第一中学招聘教师6人模拟试卷及参考答案详解【基础题】
- 中江县卫生健康系统事业单位 2026年第二批医疗卫生辅助岗招募(17人)考前冲刺试卷(考试直接用)附答案详解
- 2026秋北师大版四年级数学上册第4单元我们生活的空间(二)第1课时观察的范围课件
- 北师大版四年级下册数学题每日一练
- 生物质循环流化床气化装置项目可行性研究报告
- xx区加强生物多样性保护实施方案
- 后勤部管理制度培训
- 2026年扬州市市场监督管理系统事业单位人员招聘考试备考试题及答案详解
- ISO10012-2026《质量管理-测量管理体系要求》之12:“7.1资源-7.1.1总则”专业指导问答材料(雷泽佳编制-2026A0)
- ISO140012026标准解读课件
- 基因治疗产品生产用质粒DNA质量控制策略
- 《化工企业可燃液体常压储罐区安全管理规范》解读课件
- 中国国新资产管理有限公司招聘笔试题库2025
评论
0/150
提交评论