预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

计算机图形学.画椭圆和 姓名XXX学号XXX实验组实验时间10-24指导教师成绩实验项目名称圆,椭圆中点算法实 验 要 求优化后的算法:二次差分法 可任意指定圆心坐标实 验 目 的实 验 环 境VS2015实 验 内 容圆: voidBresenham_Circle(intxc,intyc,intr){ intx,y,d; x=0; y=r; d=3-2*r; glVertex2i(x+xc,y+yc); while(x<y) { if(d<0) ( d=d+4*x+6; } else ( d=d+4*(x-y)+10; y—; } x++; glVertex2i(x+xc,y+yc); glVertex2i(y+xc,x+yc); glVertex2i(y+xc,-x+yc); glVertex2i(x+xc,-y+yc); glVertex2i(-x+xc,-y+yc); glVertex2i(-y+xc,-x+yc); glVertex2i(-x+xc,y+yc); glVertex2i(-y+xc,x+yc); } ) 椭圆: voidEllipsepot(intxO,intyO,intx,inty) { //1 setPixel((xO+x),(yO+y)); //2 setPixel((xO+x),(yO-y)); //3 setPixel((xO-x),(yO-y)); //4 setPixel((xO-x),(yO+y)); ) 〃中点画椭圆算法 voidMidPoint_Ellipse(intxO,intyO,inta,intb){ doublesqa=a*a; doublesqb=b*b; doubled=sqb+sqa*(0.25-b); intx=0; inty=b; Ellipsepot(xO,yO,x,y); //1 while(sqb*(x+1)<sqa*(y-0.5)) { if(d<0) ( d+=sqb*(2*x+3); }else ( d+=(sqb*(2*x+3)+sqa*((-2)*y+2)); —y; } ++x; Ellipsepot(xO,yO,x,y); } d=(b*(x+0.5))*2+(a*(y-1))*2-(a*b)*2; //2 while(y>0) { if(d<0) ( d+=sqb*(2*x+2)+sqa*((-2)*y+3); ++x; } else ( d+=sqa*((-2)*y+3); } —y; Ellipsepot(xO,yO,x,y); } }O・tWI?9 进程:(11368)081的中点耳法.exe 2345678g101112131415161?18192021 阳I的IB法.cpp七x 网圆的中点IS法 7^fiinclude<w:[«inc1ude«^^^2j :【 =MHMM -::2223242526” 1%▼ 1% 实感觉自己对于图形用函数表达出来还是有点不行,多亏了室友的讲解,才画了出来 验 签名:20XX年10月24 计算机图形学实验报告 姓名: 学号: 班级: 时间:20xx年12月实验一OpenGL编程与图形绘制 实验目的 了解OpenGL编程,并熟悉OpenGL的主要功能、绘制流程和基本语法。学会配置OpenGL环境,并在该环境中编程绘图。 实验内容 OpenGL的主要功能:模型绘制、模型观察、颜色模式、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画和交互技术。 OpenGL的绘制流程分为两个方面:一个完整的窗II系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗II系统,第四层为OpenGL,最上面的层为应用软件;OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。 OpenGL的基本语法中相关库有:OpenGL核心库:gl、OpenGL实用程序库:glu、OpenG编程辅助库:aux、OpenGL实用程序工具包(OpenGLutilitytoolkit,GLUT):glut、Windows专用库:Wglo OpenGL的基本语法中命名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:〈库前缀><根命令><可选的参数个数><可选的参数类型〉。 了解了上述基础知识后,配置好0penGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。 实验代码及结果 3.1点的绘制: #include<gl/glut.h> voidInitial(vo