计算机图形学笔记(上篇讲如何显示,有ACM几何题的影子)

计算机图形学笔记(上篇讲如何显示,有ACM几何题的影子)
第一章:位图(存点阵)与矢量图(存结构表达)
第二章:光栅图形学算法
(一)直线段:
1、数值微分法:优化KX+B取消乘法,y[i+1]=y[i]+k,|K|<1;x[i+1]=x[i]+1/k,|K|>1
2、中点画线法:优化取消浮点,f(x[mid],y[mid])=a(xi+1)+b[yi+0.5]+c,<0时Q=(xi+1,yi+1),>0时Q=(xi+1,yi)
改进:今di是(xi+1,yi+0.5)代入直线的值,小于0讲明应该显示的是上面的点,d[i+1]=di+A+B,di<0,同理d[i+1]=di+A,f(di)<=0;d0=A+0.5B
3、Bresenham算法:改为判断像素点,求每个X对应的直线点,然后求到(Xi+1,yi)距离即减去yi,大于0.5yi+1,否则yi
改进:只判符号,e0=-dx,每走一步e+2dy,若e>0则减2dx且x,y变x+1,y+1,否则x,y变x+1,y
(二)多边形的扫描转换与区域填充(顶点表示与点阵表示)
问题一:如何用内部点求边界?这个问题在图像处理课程中的线段表章节,本课程不讲述,其实也是超简单,有方向优先地深搜就好了
问题二:如何用顶点表示内部点?本课程用点讲述!其实这个问题在图像处理课程中的线段表章节
X扫描线:按扫描线顺序,把每个点存入数组(若共享顶点的两条边分别落在扫描线的同一边,这个顶点要存两次),然后按X排序,X相同按Y排序,相邻两个点组成一线段,OVER
区域填充:将区域内一种子点赋予给定颜色,然后扩展到整个区域内(分四连通与八连通),简单深搜即可实现
(三)反走样
走样:锯形,微小物体被丢弃(采样不足)
反走样技术:提高分辩率,模糊平滑(黑白渐变过渡)
非加权区域采样方法:根据物体的覆盖率计算像素颜色,覆盖率是指某个像素区域被物体覆盖的比例(亮度与相交区域面积成正比而与位置无关,仍会锯齿)
加权区域采样方法:每个像素划分为3X3个子像素并赋予不同权值,中心为4倍,四边2倍,四角1倍,最后加权平均和得到亮度
(四)裁剪
裁剪:确定图形哪些部分落在显示区之内,哪些落在显示区之外,若要对图形中每个点都要进行判断,太费时
直线段裁剪:可能关系仅内,交,外三种
Cohen-Sutherland:判断在窗口内,判断在窗口的上下左右外侧
中点分割法:二分迫近求出线段与窗口边界交点(在上面CS判断方法后,可先把四点代入直线判符号)
Liang-Barsky裁剪算法:直线段看成是有方向的,用参数方程表示,判断是否有点在窗口内,取直线段与边界的四个交点的U参数,近入边的两个点与0比较取最大值为UMAX,近出边的两个点与1比较取最小值为UMIN
(五)多边形裁剪Sutherland-Hodgeman:类似求多边形的核,不过这里是用窗口四边来切,保留在窗口内的点(在两侧就保留交点)
字符裁剪:串精度裁剪:必须所有字符都在窗口内才保留;字符精度裁剪:同上但以单个字符为单位;像素精度裁剪:同上但以像素为单位
(六)消隐算法:消除隐藏线、隐藏面,只表现可见部分
Z缓冲区算法:先将Z缓冲器中各单元初始值置MIN,当要改变某元素颜色值时检查其深度是否大于该像素原深度(缺点是没有利用相关性与连续性,占用空间大)
其中占用空间大在现在看来不是大问题,但仍可以改进
改进:射线法:一点往Y负方向射出,经过奇数个点表示在图像内部,偶数个点在外部,(缺点是经过顶点易特判)
改进:弧长法:待判点依次与多边形各点连线,每次累计转过的角度(-90度~90度),代数和0外部,2PI内部,PI边上(缺点是角度难求)
改进:以待判点为中心,其他的点只考虑X和Y和他的正负关系,看跨了多少个像限,若跨了四个像限就是内部(好像凸多边形才适用)
扫描线算法:首先投影多边形,然后用水平线去分割出一段段区间(就是得到交点,和线段树+扫描线求面积OR周长类似),然后若区间没有多边形则
Warnock区域子分割算法:采用分治递归处理小窗口,当一个窗口中只与一个面有关系(包含交相或被包含皆可直接涂色),若与多个多边形有关系就四分(二维线段树OR分治)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值