【源码+文档】计算机图形学大作业

一、综述

在老师所给框架代码上进行修改完善,完成了所有要求的指令输入输出,GUI 界面实现了 CLI 部分的所有功能,包括设置画笔颜色、重置画布、保存画布、两种算法绘制线段、两种算法绘制多边形、绘制椭圆、两种算法绘制曲线、平移、旋转、缩放和两种算法裁剪线段。

额外实现了如下内容:

点击画布右、下、右下角边框调整画布大小; 点击画布选择图元; 编辑时显示平移等操作控制点。

删除选中图元,复制选中图元,粘贴已复制图元。

绘制虚线段; 凸多边形和椭圆填充。

更美观的界面。

二、算法介绍

绘制线段

DDA 算法

基本思想是记下起点,然后让长的一边变量不断加一,短的一边则不断加斜率乘 1 后近似为 int 值.代码参照[7].

Bresenham 算法

基本思想其实和 DDA 是一样的.只是 Bresenham 算法通过变形避免了浮点运算.这样一来,既提高了运算的效率,又避免了浮点数不断累加造成的长线段误差.所以本质上,Bresenham 是 DDA 算法的优化形式.代码参照[7].

代码处理

特判使得能够处理两端点相等的情况。

因为讲义中说不要求像素级一致,所以和伪代码一样只亮一边端点,即线段点的范围[P0,P1)。

绘制多边形

默认指令中的点是排好序的, 直接调用线段绘制算法按顺序连点。

绘制椭圆

使用 ppt 上的中点椭圆算法, 先画出 1/4 椭圆, 然后对称. 画 1/4 椭圆时,根据是否到达切线斜率为-1 的位置, 来判断选点的方向是基于 x

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数 (颜色、线型等)来表示图形图形的参数表示;枚举出图形中所有的点称图形的点阵 表示,简称为图像(数字图像) 2. 什么是计算机图形学计算机图形学有哪些研究内容? 3. 计算机图形学有哪些应用领域? 4. 计算机图形学有哪些相关学科分支?它们的相互关系是怎样的? 5. 图形系统的软件系统由哪些软件组成?举例说明。 6. 了解计算机图形系统的硬件。 7. 什么是显示器的分辨率、纵横比、刷新率? 8. 什么是像素、分辨率、颜色数?分辨率、颜色数与显存的关系? 分辨率M(N、颜色个数K与显存大小V的关系: 例:分辨率为1024像素/行(768行/帧,每像素24位(bit)颜色(224种颜色)的显示 器,所需的显存为:1024(768(24位(bit)=1024(768(24/8=2359296字节(byte)。 或:每像素16777216种颜色(24位真彩色),1024(768的分辨率,所需显存为:102 4(768(log216777216位显存=2359296字节显存。 9. 什么是图元的生成?分别列举两种直线和圆扫描转换算法。 10. OpenGL由核心库GL(Graphics Library)和实用函数库GLU(Graphics Library Utilities)两个库组成。 11. 区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩 展到区域内的其它点。 区域可分为 向连通区域和 向连通区域。区域填充算法有 填充算法和 填充算法。 12. 字符生成有哪两种方式? 点阵式(bitmap fonts点阵字——raster光栅方法):采用逐位映射的方式得到字符的点阵和编码——字模位 点阵。 笔画式(outline fonts笔画字——stroke方法):将字符笔画分解为线段,以线段端点坐标为字符字模的编 码。 13. 图形信息包含图形的 和 。 14. 什么是图形变换?图形变换只改变图形的 不改变图形的 。图形变换包括 和 ( )。 15. 熟练掌握二维图形的齐次坐标表示、平移、比例、旋转、对称变换以及复合变换的方 法和原则。 16. 图形的几何变换包括 、 、 、 、 ;图形连续作一次以上的几何变换称 变换。 17. 试写出图示多边形绕点A(xo,yo)旋转的变换矩阵。要求写出求解过程及结果。 18. 试写出针对固定参考点、任意方向的比例变换矩阵。 19. 试写出对任意直线y=mx+b的对称变换矩阵。 20. 什么是窗口?什么是视区?什么是观察变换? 21. 简述二维观察变换的流程。 22. 试述窗口到视区的变换步骤,并推出变换矩阵。 23. 已知w1=10,w2=20,w3=40,w4=80, v1=80,v2=110,v3=10,v4=130, 窗口中一点P(15,60),求视区中的映射点P'? 24. 在观察变换前必须确定图形的哪部分在窗口内,那些部分在窗口外,这个选择处理过 程称为 。 25. 使用Open GL的变换函数,若程序中先后调用的几个变换函数所定义的矩阵及顺序为L, M, N,其作用顺序为: 。 26. 试列举你所知的直线和多边形裁剪算法。 27. 简述Cohen-Sutherland(代码)线段裁剪算法。 28. 窗口和多边形如下图,应用Sutherland- Hodgman算法(逐边裁剪算法),对多边形进行裁剪。请以左、上、右、下的顺序列出 窗口各边裁剪多边形后所得的多边形顶点表。 29. 任何满足欧拉公式的形体称为 形体。 30. 超二次曲面通过将额外的参数插入 曲面方程而形成。 31. 在曲线、曲面的表示上,参数方程有何优点? 32. 要变换参数曲线曲面可以直接变换它的 ,而对于非参数形式则必须变换 。 33. 欧几里得曲线是 物体,沿三维曲线路径的位置可用 参数描述。 34. 规格化参变量 t [0, 1] 使得曲线曲面的 容易确定。 35. 什么是插值?什么是逼近?什么是拟合? 36. 给定一组有序的数据点 Pi ,i =0, 1, …, n,称为控制点,构造一条曲线顺序通过每个控制点,称为对这组控制点进行 ,所构造的曲线称为 。 37. 构造一条曲线使之在某种意义下最接近给定的数据点,而不要求通过其中任何一个点 ,称为对这些数据点进行 ,所构造的曲线为 曲线。 38. 拟合(Fitting)是 和 的统称。 39. 对于一组有序的型值点,确定一种参数分割,称之对这组型值点 。确定某个单参数矢函数,即确定参数曲线方程,称为曲线的 。 40. 参数域中所有节点构成的序列称为 矢量。 41. 什么是参数化?什么是参数区间的规格化? 42. 什么是参数连续性? 二条曲线P

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值