计算机图形学实验指导书1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

佛山科学技术学院计算机图形学实验指导书李晓东编电信学院计算机系2011年11月1实验1直线段的扫描转换实验类型:设计性实验类别:专业实验实验目的1.通过实验,进一步理解直线段扫描转换的DDA算法、中点bresenham算法及bresenham算法的基本原理;2.掌握以上算法生成直线段的基本过程;3.通过编程,会在C/C++环境下完成用DDA算法、中点bresenham算法及bresenham算法对任意直线段的扫描转换。实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用DDA算法中点bresenham算法及bresenham算法实现任意给定两点的直线段的绘制(直线宽度和线型可自定)。实验步骤:1、复习有关算法的基本原理,明确实验目的和要求;2、依据算法思想,绘制程序流程图;3、设计程序界面,要求操作方便;4、用C/C++语言编写源程序并调试、执行;5、分析实验结果6、对程序设计过程中出现的问题进行分析与总结;7、打印源程序或把源程序以文件的形式提交;8、按格式要求完成实验报告。实验报告要求:1、各种算法的基本原理;2、各算法的流程图3、实验结果及分析(比较三种算法的特点,界面插图并注明实验条件)4、实验总结(含问题分析及解决方法)2实验2圆的扫描转换实验类型:设计性实验类别:专业实验实验目的1、通过实验,进一步理解和掌握中点bresenham画圆算法的基本原理;2、掌握以上算法生成圆和圆弧的基本过程;3、掌握在C/C++环境下完成用中点bresenham算法圆或圆弧的绘制方法。实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用中点(Besenham)算法实现圆或圆弧的绘制。实验步骤1.复习有关圆的生成算法,明确实验目的和要求;2.依据算法思想,绘制程序流程图(注意圆弧生成时的输入条件);3.设计程序界面,要求操作方便;4.用C/C++语言编写源程序并调试、执行;5.分析实验结果6.对程序设计过程中出现的问题进行分析与总结;7.打印源程序或把源程序以文件的形式提交;8.按格式要求完成实验报告。实验报告要求:1.分析算法的工作原理;2.画出算法的流程图3.实验结果及分析(比较圆与圆弧生成算法的不同)4.实验总结(含问题分析及解决方法)3实验3多边形的区域填充学时:2实验类型:设计性实验类别:专业实验实验目的1.通过实验,进一步理解和掌握几种常用多边形填充算法的基本原理2.掌握多边形区域填充算法的基本过程3.掌握在C/C++环境下用多边形填充算法编程实现指定多边形的填充。实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用种子填充算法和扫描线填充算法等任意两种算法实现指定多边形的区域填充。实验步骤1.复习有关算法,明确实验目的和要求;2.依据算法思想,绘制程序流程图(指定填充多边形);3.设计程序界面,要求操作方便;4.用C/C++语言编写源程序并调试、执行(最好能用动画显示填充过程);5.分析实验结果6.对程序设计过程中出现的问题进行分析与总结;7.打印源程序或把源程序以文件的形式提交;8.按格式要求完成实验报告。实验报告要求:1.分析算法的工作原理;2.画出算法的流程图3.实验结果及分析(比较两种算法的不同)4.实验总结(含问题分析及解决方法)4实验4图形的裁剪--Cohen_Sutherland裁剪算法实验类型:设计性实验类别:专业实验实验目的1、通过实验,进一步理解和掌握Cohen_Sutherland裁剪算法的基本原理;2、掌握用Cohen_Sutherland裁剪算法的基本过程;3、掌握在C/C++环境下用Cohen_Sutherland算法编程实现用矩形窗口对直线的裁剪。实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用Cohen_Sutherland算法编程实现用矩形窗口对直线的裁剪。实验步骤1.复习有关算法,明确实验目的和要求;2.依据算法思想,绘制程序流程图(裁剪窗口固定);3.设计程序界面,要求操作方便;4.用C/C++语言编写源程序并调试、执行(最好能显示裁剪动画);5.分析实验结果6.对程序设计过程中出现的问题进行分析与总结;7.打印源程序或把源程序以文件的形式提交;8.按格式要求完成实验报告。实验报告要求:1.分析算法的工作原理;2.画出算法的流程图3.实验结果及分析(比较圆与圆弧生成算法的不同)4.实验总结(含问题分析及解决方法)5实验5图形的裁剪--梁友栋裁剪算法实验类型:设计性实验类别:专业实验实验目的1.通过实验,进一步理解和掌握梁友栋裁剪算法的基本原理2.掌握用梁友栋裁剪算法裁减直线的基本过程3.掌握在C/C++环境下完成用梁友栋裁剪算法编程实现用矩形窗口对直线的裁剪。实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境实验学时:2学时实验内容用Cohen_Sutherland算法编程实现用矩形窗口对直线的裁剪。实验步骤1.复习有关算法,明确实验目的和要求;2.依据算法思想,绘制程序流程图(裁剪窗口固定);3.设计程序界面,要求操作方便;4.用C/C++语言编写源程序并调试、执行(最好能显示裁剪动画);5.分析实验结果6.对程序设计过程中出现的问题进行分析与总结;7.打印源程序或把源程序以文件的形式提交;8.按格式要求完成实验报告。实验报告要求:1.分析算法的工作原理;2.画出算法的流程图3.实验结果及分析(比较圆与圆弧生成算法的不同)4.实验总结(含问题分析及解决方法)6实验6几何图形变换实验实验类型:设计性实验类别:专业实验实验目的1、通过实验,掌握计算机图形变换的基本知识、原理;2、掌握二维和三维图形几何变换;3、通过使用VC++编程环境实现指定图形的常见几何变换;实验设备及实验环境计算机(每人一台)VC++6.0或其他C/C++语言程序设计环境(可使用OPENGL)实验学时:2学时实验内容1.在VC++编程环境下建立平面几何图形实现其常见几何变换;2.在VC++编程环境下建立三维立方体,实现其几何变换,包括缩放\平移\旋转.实验步骤1.复习有关算法,明确实验目的和要求;2.依据算法思想,绘制程序流程图;3.设计程序界面,要求操作方便;4.用C/C++语言编写源程序并调试、执行(任意指定一个图形);5.分析实验结果6.对程序设计过程中出现的问题进行分析与总结;7.打印源程序或把源程序以文件的形式提交;8.按格式要求完成实验报告。实验报告要求:1.分析算法的工作原理;2.画出算法的流程图3.实验结果及分析(比较圆与圆弧生成算法的不同)4.实验总结(含问题分析及解决方法)7附录1:在TC下构建图形环境的代码及例子:/*display.h:初始化图形系统函数*/#includestdio.h#includestdlib.h#includegraphics.h#defineESC0x1b/*INITIALIZE:Initializesthegraphicssystemandreports*//*anyerrorswhichoccured.*/voidInitialize(void){intGraphDriver;/*TheGraphicsdevicedriver*/intGraphMode;/*TheGraphicsmodevalue*/intErrorCode;/*Reportsanygraphicserrors*/GraphDriver=DETECT;/*Requestauto-detection*/initgraph(&GraphDriver,&GraphMode,);ErrorCode=graphresult();/*Readresultofinitialization*/if(ErrorCode!=grOk){/*Erroroccuredduringinit*/printf(GraphicsSystemError:%s\n,grapherrormsg(ErrorCode));exit(1);}}以上Initialize函数就完成了图形环境的建立,以下就可以使用TC下的绘图函数完成绘图。常用的TC绘图函数有:图形和图像函数包含在graphics.h里面(一)像素函数1、putpixel()画像素点函数(注意:与win32不同)2、getpixel()返回像素色函数(二)直线和线型函数1.line()画线函数82.lineto()画线函数3.linerel()相对画线函数4.setlinestyle()设置线型函数5.getlinesettings()获取线型设置函数6.setwritemode()设置画线模式函数(三)、多边形函数7.rectangle()画矩形函数8.bar()画条函数9.bar3d()画条块函数10.drawpoly()画多边形函数(四)、圆、弧和曲线函数1.getaspectratio()获取纵横比函数2.circle()画圆函数3.arc()画圆弧函数4.ellipse()画椭圆弧函数5.fillellipse()画椭圆区函数6.pieslice()画扇区函数7.sector()画椭圆扇区函数8.getarccoords()获取圆弧坐标函数(五)、填充函数1.setfillstyle()设置填充图样和颜色函数2.setfillpattern()设置用户图样函数3floodfill()填充闭域函数4.fillpoly()填充多边形函数5.getfillsettings()获取填充设置函数6.getfillpattern()获取用户图样设置函数9附录2VC++6.0下多级菜单创建的例子(见CreateMenu.rar)10薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功