计算机图形学集成实验环境 Engintime CG Lab 简介
来源: | 作者:CG Lab cg | 发布时间: 2022-09-29 | 1557 次浏览 | 分享到:
北京英真时代科技有限公司为了满足国内高校提升计算机图形学实验教学水平的迫切需要,经过两年潜心研发,成功发布了“计算机图形学集成实验环境CG Lab”软件产品。CG Lab配套实验方案成熟,资料齐全,已经完全可以满足高等院校计算机图形学实验教学的要求。由于CG Lab对计算机图形学实验改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。


计算机图形学集成实验环境 Engintime CG Lab 简介

       北京英真时代科技有限公司为了满足国内高校提升计算机图形学实验教学水平的迫切需要,经过两年潜心研发,成功发布了“计算机图形学集成实验环境CG Lab”软件产品。CG Lab配套实验方案成熟,资料齐全,已经完全可以满足高等院校计算机图形学实验教学的要求。由于CG Lab对计算机图形学实验改革有着巨大的推动作用,一经推向市场,就受到了广大高校教师和学生的欢迎。

       计算机图形学集成实验环境CG Lab中的代码全部使用C++语言编写,并充分利用了主流的Win32 GDIOpenGL技术,成功将算法和应用场景完美结合,并具有高度的灵活性和扩展性,其主要特点如下:

       提供了一个可视化的集成实验环境。CG Lab提供了一个用户界面和操作习惯都类似于Visual Studio的可视化IDE环境,操作简单,易学易用,可避免学生学习多种不同IDE环境,对学生在参加工作后使用Visual Studio进行软件开发有很大帮助。集成实验环境可直接在Windows上安装,实验室无需安装多种操作系统,可有效降低管理和维护成本。学生可以方便地使用CG Lab提供的新建项目功能,选择实验模板创建一个项目,根据实验指导的要求,添加代码,实现相应的功能。集成实验环境支持 C++源代码级的调试功能,可在源代码中设置断点或者单步调试源代码,并可随意查看、修改变量的值,这些功能可帮助学生查找源代码中存在的逻辑错误和异常行为。

       可接入开放实验管理平台。学生完成实验后,可非常方便的将编写的源代码提交到平台。教师可通过平台实时查看学生的出勤情况和实验完成进度,还可以在线查看学生提交的源代码,并使用自动评分功能为学生的实验进行打分。 

       提供了一套成熟的实验题目。CG Lab提供的16个实验题目涵盖了计算机图形学所有重要的概念和算法,包括基本图形的绘制,二维和三维图形的几何变换,图形的裁剪,曲线曲面的绘制,透视投影,隐线隐面,分形几何,真实感图形等算法。为了展示基本图形的绘制与多边形填充的算法,还专门提供了一个栅格系统,可以在该栅格系统上绘制基本图形和填充多边形,从而非常直观的观察出使用不同的方法绘制出基本图形的差别,使学生深入理解基本图形绘制的原理和算法。每个实验题目都提供了配套的实验源代码文件,并以模块化的方式进行组织,配有完善的中文注释,可读性好,完全符合商业级的编码规范。这些实验题目中总共有多达110个练习,完成这些练习大概需要学生编写4000行代码,使用52种计算机图形学算法,涉及到50个GDI函数和150个OpenGL函数。CG Lab作为一个优秀的实验平台,提供了强大的灵活性和扩展性,不但可以在现有实验题目的基础上进行简单定制,也完全可以定制出新的实验题目,从而与新教材配套使用。在所有实验模板的基础上构建出了一套演示程序,教师在课堂上讲解原理和算法时,可以使用演示程序让学生预览图形绘制的效果。

       提供了完善的配套资料。在计算机图形学实验教学的各个环节,CG Lab都提供了完善的配套资料。这些资料包括文档、源代码参考答案以及培训录像等。在这些配套资料的帮助下,教师可以方便、灵活的组织学生开展计算机图形学实验。部分核心文档还提供Word版本,方便二次编辑。所有配套资料都可以从CG Lab的产品光盘中获得。主要的文档资料包括《计算机图形学实验指导》、《CG Lab 实验教师参考》、《Engintime CG Lab 安装与使用指南》等。

       希望我们的努力能够帮助您培养出基础知识更扎实的学生。

 

实验内容清单

一、实验环境的使用

  • 熟悉Engintime CG Lab的基本使用方法。

  • 学习使用GDI绘制基本图形的方法。

  • 学习使用OpenGL绘制基本图形的方法。 

二、基本图形的绘制

  • 掌握中点绘制直线的原理,并设计中点算法。

  • 掌握Bresenham绘制直线的原理,并设计Bresenham算法。

  • 掌握DDA绘制直线的原理,并设计DDA算法。

  • 理解反走样直线算法的原理,并设计直线距离加权反走样算法。

  • 掌握八分法中点和Bresenham算法绘制圆的原理,并设计八分法绘制圆的中点和Bresenham算法。

  • 掌握绘制1/4椭圆弧的上半部分和下半部分的中点算法原理,掌握下半部分椭圆偏差判别式的初始值计算方法并设计顺时针四分法绘制椭圆的中点bresenham算法。 

三、多边形的填充

  • 掌握多边形有效边表填充算法,并会设计有效边表节点和边表节点数据结构,扫描线桶节点的数据结构,以及动态链表排序方法。

  • 理解边缘填充算法原理,并学会使用GetPixel函数和SetPixel函数对像素点颜色取反。

  • 理解种子填充算法原理,并掌握四邻点的访问方法和堆栈的编程操作。 

四、二维几何变换

  • 掌握二维平移、比例、旋转、反射、和错切这5种变换矩阵。

  • 掌握矩阵的乘法运算。

五、三维几何变换

  • 掌握三维平移、比例、旋转、反射和错切这五种变换矩阵。

  • 掌握三维坐标向屏幕二维坐标变换的公式。

  • 掌握OpenGL中绘制多面体调用的函数。

  • 掌握OpenGL中三维几何变换所调用的函数。 

六、裁剪算法

  • 理解直线端点编码原理 。

  • 掌握直线“简取”、“简弃”和“求交”的判断。

  • 掌握Cohen-Sutherland直线裁剪算法。

  • 掌握中点分割直线裁剪算法。

  • 掌握梁友栋---Barsky直线裁剪算法原理。

  • 理解多边形裁剪的方法。

七、透视和投影

  • 理解三视图生成原理,并掌握主视图、俯视图和侧视图变换矩阵。

  • 理解透视图投影原理,并掌握一点透视图、两点透视图和三点透视图生成方法。 

八、曲线和曲面的绘制

  • 掌握三次参数样条函数,并理解追赶法求解三角形矩阵和边界条件的投影。

  • 理解Hermite的边界条件和矩阵。

  • 掌握绘制Bezier曲线的算法。

  • 掌握绘制双三次Bezier曲面的算法。

  • 掌握绘制B样条分段曲线的算法,并理解曲线的局部修改性。

  • 掌握绘制双三次B样条曲面的算法,并能够运用分块矩阵算法。

  • 理解使用OpenGL提供的函数绘制常见曲线和曲面,Bezier曲线和Bezier曲面,B样条曲线和B样条曲面。

九、分形几何-----递归模型

  • 掌握Cator集生成元递归算法。

  • 掌握Koch曲线生成元递归算法。

  • 掌握Peano-Hilbert曲线生成元递归算法。

  • 掌握Sierpinski垫片生成元递归算法。

  • 掌握Sierpinski地毯生成元递归算法。

  • 理解Sierpinski海绵生成元递归算法。

  • 掌握C字曲线生成元递归算法。

  • 掌握Caley树生成元递归算法。 

十、分形几何-----L和IFS模型

  • 使用L系统模型算法实现Koch曲线的绘制,分形草的绘制,Peano-Hilbert曲线的绘制,分形灌木丛的绘制。

  • 使用IFS迭代函数系统模型算法实现Koch曲线的绘制,Sierpinski垫片的绘制,Sierpinski地毯的绘制,枫叶的绘制。 

十一、隐线隐面算法

  • 掌握凸多面体隐线算法。

  • 掌握Z-Buffer隐面算法。

  • 理解动态画家隐面算法。

十二、用GDI开发交互绘图程序

  • 了解简单CAD绘图系统框架的结构。

  • 掌握多态和设计模式(观察者模式、组件模式等)在CAD绘图系统中的应用。

  • 实现基本图形的绘制和几何变换。

十三、用OpenGL开发交互绘图程序

  • 掌握在OpenGL中鼠标处理函数的使用。

  • 掌握在OpenGL中键盘函数的使用和特殊键的处理函数的使用。

  • 理解OpenGL拾取操作。

  • 理解OpenGL创建动画的过程。 

十四、用GDI绘制真实感图形

  • 理解使用Gouraud明暗处理填充立方体的处理方法。

  • 理解环境光模型、漫反射光模型、镜面反射光模型和材质模型。

  • 理解国际象棋纹理的制作方法以及纹理和立方体表面的绑定。

十五、用OpenGL绘制真实感图形

  • 使用OpenGL制作木质纹理,并和立方体表面绑定。

  • 理解OpenGL光照函数的使用。

十六、雪人动画

  • 掌握设计场景中的景物位置、颜色和形状的方法。

  • 掌握OpenGL的列表的使用方法。

  • 在场景中添加灯光,实现场景的立体效果。

  • 使用OpenGL函数键盘处理函数改变照相机的位置,灵活掌握gluLookAt函数的使用方法。

  • 掌握 OpenGL中检测鼠标离开,进入窗口区域glutEntryFunc(void(*func)(int state))函数的使用。

 



高校教师可免费使用 CG Lab,现在就联系我们吧!