计算机图形学实验报告.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)

计算机图形学实验报告 21 计算机图形学实验报告全文共48页,当前为第1页。计算机图形学实验报告全文共48页,当前为第1页。 计算机图形学实验报告全文共48页,当前为第1页。 计算机图形学实验报告全文共48页,当前为第1页。 计算机图形学实验报告 姓名: 学号: 班 级: 专业: 计算机科学与技术 完成日期: 2017.1.3 计算机图形学实验报告全文共48页,当前为第2页。计算机图形学实验报告全文共48页,当前为第2页。 计算机图形学实验报告全文共48页,当前为第2页。 计算机图形学实验报告全文共48页,当前为第2页。 目录 实验一 OpenGL图形编程 3 1. 实验目的 3 2. 实验内容 3 3. 实验代码与实验结果 4 (1) 画矩形 4 (2) 画点 6 (3) 画直线 7 (4) 画等边三角形 8 实验二 直线绘制实验 9 1. 实验目的和实验内容 9 2. 实验代码和实验结果 9 (1) 掌握数值微分算法编程绘制直线 9 (2) 掌握中点画线算法编程绘制直线 12 (3) 掌握Bresenham算法编程绘制直线 13 实验三 圆绘制实验 16 1. 实验目的和实验内容 16 2. 实验代码实验结果 16 (1) 实现八分法画圆程序 16 (2) 实现 Bresenham 算法绘制圆 18 (3) 实现中点Bresenham 算法绘制椭圆 22 实验四 填充算法实验 26 1. 实验目的 26 2. 实验内容 26 3. 实验代码和实验结果 27 实验五 裁剪算法实验 37 1. 实验目的和实验内容 37 2. 实验代码和实验结果 37 计算机图形学实验报告全文共48页,当前为第3页。计算机图形学实验报告全文共48页,当前为第3页。实验一 OpenGL图形编程 计算机图形学实验报告全文共48页,当前为第3页。 计算机图形学实验报告全文共48页,当前为第3页。 实验目的 点的绘制 直线的绘制 多边形面的绘制 实验内容 点的绘制 glBegin(GL_POINTS); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(10.0f, 0.0f, 0.0f); glEnd(); 点的属性(大小) void glPointSize(GLfloat size); 直线的绘制模式 GL_LINES GL_LINE_STRIP GL_LINE_LOOP 直线的属性 线宽 void glLineWidth(GLfloat width) 计算机图形学实验报告全文共48页,当前为第4页。计算机图形学实验报告全文共48页,当前为第4页。线型 计算机图形学实验报告全文共48页,当前为第4页。 计算机图形学实验报告全文共48页,当前为第4页。 glEnable(GL_LINE_STIPPLE); glLineStipple(GLint factor,GLushort pattern); 三角形面的绘制 GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN 四边形面的绘制 GL_QUADS GL_QUADS_STRIP 多边形面的绘制(GL_POLYGON) 多边形面的绘制规则 所有多边形都必须是平面的。 多边形的边缘决不能相交,而且多边形必须是凸的。 解决:对于非凸多边形,可以把它分割成几个凸多边形(通常是三角形),再将它绘制出来。 实验代码与实验结果 画矩形 #include <gl/glut.h> void Initial(void){ glClearColor(1.0f,1.0f,1.0f,1.0f); 计算机图形学实验报告全文共48页,当前为第5页。计算机图形学实验报告全文共48页,当前为第5页。 glMatrixMode(GL_PROJECTION); 计算机图形学实验报告全文共48页,当前为第5页。 计算机图形学实验报告全文共48页,当前为第5页。 gluOrtho2D(0.0,200.0,0.0,150.0); } void Display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f,0.0f,0.0f); glRectf(50.0f,100.0f,150.0f,50.0f); glFlush(); } int main(int argc,char*argv[]){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE"GLUT_RGB); glutInitWindowSize(400,300); glutInitWindowPosition(100,120); glutCreateWindow("矩形"); glutDisplayFunc( 计算机图形学是一门涵盖多个领域的学科,主要涉及利用数学和计算方法生成、处理以及交互图形信息。本实验报告详述了五个关键实验,涵盖了OpenGL图形编程、直线绘制、圆绘制、填充算法和裁剪算法的基本概念和技术。 实验一介绍了OpenGL图形编程的基础,包括点、线和多边形的绘制。在OpenGL中,点的绘制使用`glBegin(GL_POINTS)`和`glVertex3f()`函数定义坐标,`glPointSize()`设置点的大小。直线的绘制模式有多种,如`GL_LINES`、`GL_LINE_STRIP`和`GL_LINE_LOOP`,通过`glLineWidth()`调整线宽,`glLineStipple()`定义线型。多边形面的绘制,如矩形,可以通过`glRectf()`函数实现,确保所有多边形都是平面且凸的。 实验二探讨了直线绘制的不同算法。数值微分算法用于近似直线,中点画线算法则基于像素中心线性插值,而Bresenham算法是一种优化的离散算法,适用于快速精确地在屏幕上画出直线。 实验三涉及圆的绘制,实验中提到了八分法和Bresenham算法。八分法通过将圆分成八个扇区来逐步绘制,而Bresenham算法是一种效率高的点采样算法,用于绘制圆形和椭圆,减少错误累加。 实验四关注的是填充算法,实验目标是学习如何填充二维图形内部。这些算法可能包括扫描线算法或者基于边界框的填充方法,它们有助于在图形内部填充颜色。 实验五介绍了裁剪算法,这是图形学中的重要组成部分,用于确定图形是否部分或全部位于指定区域内,例如视窗裁剪。实验内容可能包括Sutherland-Hodgman裁剪算法,它能有效地处理多边形的裁剪问题。 这些实验综合了计算机图形学的基本原理和技术,包括坐标系统、颜色管理、几何变换、图元渲染、图像处理和算法设计。通过这些实验,学生能够深入理解计算机如何生成和显示复杂的图形,并为更高级的图形编程和应用打下坚实基础。
























剩余47页未读,继续阅读

- m0_740659842023-09-22怎么能有这么好的资源!只能用感激涕零来形容TAT...
- 普通网友2024-04-24非常有用的资源,有一定的参考价值,受益匪浅,值得下载。

- 粉丝: 206
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【STM32MP1线上课程】STM32MP1 online training_10_OpenSTLinux Starte
- 【STM32U5线上课程】STM32U5 online training_23_time clock.pdf
- STM32F1_F3_L0_L1上的USB模块:USB IP介绍_下.pdf
- USB IP及其库的使用.pdf
- 【STM32MP1线上课程】STM32MP1 online training_11_OpenSTLinux Starte
- 以太网进阶培训_Part1 STM32以太网外设.pdf
- STM32F7 QuadSPI.pdf
- STM32 GUI应用培训:使用STM32设计HMI_综述.pdf
- STM32F1通信模块介绍.pdf
- STM32L4产品技术培训_ L4系列比较器(COMP)介绍.pdf
- STM8L系统配置模块(SYSCFG)介绍.pdf
- iAmCorey-promptsurf-33744-1755667098737.zip
- 造价指标分析(二).pdf
- 土石方挖运回填施工承包合同.doc
- STM32F0通用输入输出模块(GPIO)介绍.pdf
- STM32 云接入培训_5_附录_物联网课程服务端软件环境安装.pdf


