当前位置:文档之家› 计算机图形学实验指导书1

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

佛山科学技术学院计算机图形学实验指导书李晓东编电信学院计算机系2011年11月实验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 圆的扫描转换实验类型:设计性实验类别:专业实验实验目的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 多边形的区域填充学时: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 图形的裁剪--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 图形的裁剪--梁友栋裁剪算法实验类型:设计性实验类别:专业实验实验目的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 几何图形变换实验实验类型:设计性实验类别:专业实验实验目的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.实验总结(含问题分析及解决方法)附录1:在TC下构建图形环境的代码及例子:/* display.h : 初始化图形系统函数*/#include "stdio.h"#include "stdlib.h"#include "graphics.h"#define ESC 0x1b/* INITIALIZE: Initializes the graphics system and reports *//* any errors which occured. */void Initialize(void){ int GraphDriver; /* The Graphics device driver */int GraphMode; /* The Graphics mode value */int ErrorCode; /* Reports any graphics errors */ GraphDriver = DETECT; /* Request auto-detection */initgraph( &GraphDriver, &GraphMode, "" );ErrorCode = graphresult(); /* Read result of initialization*/if( ErrorCode != grOk ){ /* Error occured during init */printf(" Graphics System Error: %s\n", grapherrormsg( ErrorCode ) );exit(1);}}以上Initialize函数就完成了图形环境的建立,以下就可以使用TC下的绘图函数完成绘图。

常用的TC绘图函数有:图形和图像函数包含在graphics.h里面(一) 像素函数1、putpixel() 画像素点函数(注意:与win32不同)2、getpixel()返回像素色函数(二) 直线和线型函数1. line() 画线函数2. 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() 设置用户图样函数3 floodfill() 填充闭域函数4. fillpoly() 填充多边形函数5. getfillsettings() 获取填充设置函数6. getfillpattern() 获取用户图样设置函数附录2VC++6.0下多级菜单创建的例子(见CreateMenu.rar)。

相关主题