如果您无法下载资料,请参考说明:
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){//1setPixel((xO+x),(yO+y));//2setPixel((xO+x),(yO-y));//3setPixel((xO-x),(yO-y));//4setPixel((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);//1while(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;//2while(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的中点耳法.exe2345678g101112131415161?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专用库:WgloOpenGL的基本语法中命名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:〈库前缀><根命令><可选的参数个数><可选的参数类型〉。了解了上述基础知识后,配置好0penGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。实验代码及结果3.1点的绘制:#include<gl/glut.h>voidInitial(vo