- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
opengl实验报告
总评成绩:_________________________
实验类型: 交互
实验名称drawFreeCurve.c程序自由画线部分,其余的都是自己原创的
二、实验要求
1.单击左键移动鼠标开始自由绘图。
2.单击鼠标右键绘制随机曲线:
(1)单击键盘a放大图形
(2)单击键盘b缩小图形
三、完成情况
功能1 : 基本内容
功能描述:
完成情况: 基本完成实验要求,但是在绘制随机线条时,图案总是显示在左下角,如果图案调到中间左键自由绘制的时候点不在鼠标点上,不知道怎么改!!
Bug:暂时没有找到
备注:图形放大会放大到窗口外面。
四、实现方案
1.用鼠标响应函数控制左右键,在左键条件下用一个参数记录鼠标单击几次,只有当参数为1 时才响应鼠标移动函数绘制点,所以只要鼠标移动速度比较慢就能自由绘制图形。
2.自由绘制随机曲线:绘制bezier曲线,把他的四个点用随机数代替就行,设置八个随机数分别控制4个点,单击右键,响应一次随机函数给4个点赋值。
3.放大缩小:放大与减少随机函数。
五、创新和亮点
六、运行结果
给出尽可能完备的测试用例及测试结果(截图)
合法的测试用例至少两个
1:左键单击移动鼠标形成的图案
2.右键单击形成的随机曲线
3.放大随机曲线
- 非法的测试用例至少两个
七、源码
#include GL/glut.h
#include stdlib.h
#includeiostream.h
/* globals */
int iPointNum = 0; //定义一个鼠标记录单击几次的参数
int w[7];
int c,d,f,h,g,j,k; //七个随机数
GLsizei wh = 800, ww = 600;
int num[7]={0};
/* initial window size */
GLfloat size = 3.0; /* half side length of square */
//红色部分引用drawFreeCurve.c程序的画点部分
void drawSquare(int x, int y)//画点函数颜色随机
{
y=wh-y;
glColor3ub( (char) rand()%256, (char) rand()%256, (char) rand()%256);
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();
}
void myReshape(GLsizei w, GLsizei h)//初始化窗体点部分的
{
/* adjust clipping box */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(10.0, (GLdouble)w, 0.0, (GLdouble)h, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glViewport(0,0,w,h);
glClearColor (1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(4.0);
glFlush();
ww = w;
wh = h;
}
/* display callback required by GLUT 3.0 */
void display(void)
{ glViewport(0,0,ww,wh);
}
void random()//随机数产生函数
{ int i;
for( i=0;i7;i++)
w[i]=(int) rand()%100;
for(i=0;i7;i++)
num[i]=w[i];
}
void mouse()/画随机曲线函数
{
c=w[0]+num[0];
d=w[1]+num[1];
f=w[2]+num[2];
h=w[3]+num[3];
g=w[4]+num[4];
j=w[5]+num[5];
k=w[6]+num[6];
GLfloat ControlP[4][3]={{c,c,0.0}, {d,f,0.0},
{h,g,0.0}, {j,k,0.0}};
glMap1f(GL_MAP1_VERTEX_3,0.0,
您可能关注的文档
- 第二篇第十二章 生物信息学在分子诊断中的应用.doc
- 1 What is the greatest difference between vowels and consonants 中英文元音对比.doc
- 大学英语精读第三册Unit 8.doc
- 大学英语精读四 1-6单元课后cloze.docx
- 一年中所有节日,对你有所帮助.doc
- Global Anti-money Laundering Software Industry(反洗钱软件) 2016 Market Research.docx
- 2016年第二学期红领巾电视台节目安排.doc
- 杨尚贤单词记忆法必威体育精装版升级版.doc
- C语言出错信息中英文对照表.doc
- 翻译练习资料中英对照.doc
- 2022-2023学年广东省广州市大学附属中学高一物理测试题含解析.pdf
- 2021《新高考政治》必威体育精装版时事政治—求异心理引发消费的单元汇编含解析.pdf
- 2013-2014学年度第一学期八年级语文期末测试卷及答案 .pdf
- 2021年江西省中考数学模拟试卷(三)(附答案详解) .pdf
- 2020-2021学年大连市第三十四中学高三语文期中试题及答案解析 .pdf
- (1)建议信——2022届高考英语二轮复习新高考新题型精思巧练之应用文写 .pdf
- 2012年电力行业标准目录 .pdf
- 2019年二年级语文下《母亲的恩情》听课记录及评析 .pdf
- 2021年湘教版七年级地理下册期中考试卷(审定版)_图文 .pdf
- 2021年秋季公司信贷银行从业资格第六次调研测试卷(含答案) .pdf
文档评论(0)