
计算机图形学
文章平均质量分 62
笔记
姜希成
岁月流逝,将来的某时某处,我会在叹息中想起,林间的路分成两股,而我选择了人迹罕至之徒,那一刻起,一切差别已成定铸。
展开
-
中点分割直线段裁剪算法
中点分割算法原理中点分割直线段裁剪算法对Cohen-Sutherland直线裁剪算法的第3种情况做了改进,原理是简单地把起点为P0,终点为P1的直线段等分为两段直线P0P和PP1(P为直线段中点),对每一段直线重复“简取”和“简弃”的处理,对于不能处理的直线段再继续等分下去线,直至每一段直线完全能够被“简取”或“简弃”,也就是说直至每段直线完全位于窗口之内或完全位于窗口之外,就完成了直线段的裁...原创 2018-06-23 09:53:59 · 7471 阅读 · 0 评论 -
二维复合变换
复合变换原理P′=P⋅T=P⋅T1⋅T2…TnP′=P⋅T=P⋅T1⋅T2…TnP' = P\cdot T = P\cdot T_1\cdot T_2 \ldots T_n 其中,T为复合变换矩阵,T1,T2…TnT1,T2…TnT_1, T_2 \ldots T_n为单次基本几何变换矩阵。相对于任一参考点的二维几何变换相对于任一参考点的比例变换和旋转变换应表达为复合变换形式,变换方...原创 2018-06-18 21:24:17 · 1371 阅读 · 0 评论 -
二维图形基本几何变换矩阵
二维图形基本几何变换是指相对于坐标原点和坐标轴进行的几何变换,包括平移(Translate)、比例(Scale)、旋转(Rotate)、反射(Reflect)和错切(shear)5种变换。物体变换物体变换是通过变换物体上每一个顶点实现的,因此以点的二维基本几何变换为例讲解二维图形基本几何变换矩阵 。平移变换矩阵比例变换矩阵旋转变换矩阵反射变换矩阵 ...原创 2018-06-18 21:12:49 · 29161 阅读 · 2 评论 -
图形几何变换基础
规范化齐次坐标齐次坐标就是用n+1维矢量表示n维矢量。例如,在二维平面中,点P(x,y)的齐次坐标表示为(wx,wy,w)。类似地,在三维空间中,点P(x,y,z)的齐次坐标表示为(wx,wy,wz,w)。 w=1就是规范化的齐次坐标。二维点P(x,y)的规范化齐次坐标为〔x,y,1〕,三维点P(x,y,z)的规范化齐次坐标为(x,y,z,1)。 定义了规范化齐次坐标以后,...原创 2018-06-18 21:00:48 · 2024 阅读 · 0 评论 -
区域填充算法
填充原理种子填充算法是从区域内任一个种子像素位置开始,由内向外将填充色扩散到整个多边形区域的填充过程。种子填充算法突出的优点是能对具有任意复杂闭合边界的区域进行填充。四邻接点与八邻接点四连通域与八连通域 种子填充算法算法定义从种子像素点开始,使用四邻接点方式搜索下一像素点的填充算法称为四邻接点填充算法。从种子像素点开始,使用八邻接点方式搜索下一像素...原创 2018-06-18 20:46:02 · 7041 阅读 · 1 评论 -
边缘填充算法
填充原理边缘填充算法是先求出多边形的每条边与扫描线的交点,然后将交点右侧的所有像素颜色全部取为补色(或反色)。按任意顺序处理完多边形的所有边后,就完成了多边形的填充任务。边缘填充算法利用了图像处理中的求“补”或求“反”的概念,对于黑白图像,求补就是把RGB(1,1,1)(白色)的像素置为RGB(0,0,0)(黑色),反之亦然;对于彩色图像,求补就是将背景色置为填充色,反之亦然。求补的一条基本性...原创 2018-06-18 16:59:35 · 10922 阅读 · 0 评论 -
有效边表填充算法
填充原理有效边表填充算法通过维护边表和有效边表,避开了扫描线与多边形所有边求交的复杂运算。填充原理是按照扫描线从小到大的移动顺序,计算当前扫描线与有效边的交点,然后把这些交点按x值递增的顺序进行排序、配对,以确定填充区间,最后用指定颜色填充区间内的所有像素,即完成填充工作。有效边表填充算法已成为目前最为有效的多边形填充算法之一。 边界像素处理原则填充左下角为(1,1),右上角为(3...原创 2018-06-18 16:31:47 · 15435 阅读 · 2 评论 -
反走样技术
直线扫描转换算法在处理非水平、非垂直且非45°的直线段时会出现锯齿,这是因为直线段在光栅扫描显示器上显示的图像是由一系列亮度相同而面积不为零的离散像素点构成的。这种由离散量表示连续量而引起的失真称为走样(aliasing)。用于减轻走样现象的技术称为反走样(anti-aliasing,AA)或者抗锯齿。走样是理想直线(理想直线宽度为零)扫描转换后(真实像素点面积不为零)的必然结果。走样是光栅扫描显...原创 2018-06-18 15:56:11 · 7480 阅读 · 2 评论 -
椭圆的扫描转换-中点Bresenham算法
椭圆的扫描转换是在屏幕像素点阵中选取最佳逼近于理想椭圆像素点集的过程。椭圆是长半轴和短半轴不相等的圆,椭圆的扫描转换与圆的扫描转换有类似之处。本节主要讲解顺时针绘制1/4椭圆的中点Bresenham算法原理,根据对称性可以绘制完整椭圆。 默认的椭圆是圆心位于坐标系原点,长半轴为a、短半轴为b的椭圆 。需要进行圆心平移或使用自定义坐标系可以绘制椭圆。 如果“x方向上每次加1,y方向上减不减...原创 2018-06-18 15:40:49 · 10896 阅读 · 1 评论 -
圆的扫描转换-中点Bresenham算法
圆的扫描转换是在屏幕像素点阵中确定最佳逼近于理想圆的像素点集的过程。圆的绘制可以使用简单方程画圆算法或极坐标画圆算法,但这些算法涉及开方运算或三角运算,效率很低。 仅包含加减运算的顺时针绘制1/8圆的中点Bresenham算法,根据对称性可以绘制整圆 。 默认的圆是圆心位于坐标系原点,半径为R的圆。 屏幕设备坐标系的原点位于左上角,绘制结果为1/4圆,需要进行圆心平移或使用自定义坐系可以...原创 2018-06-18 14:46:12 · 9662 阅读 · 2 评论 -
直线的扫描转换
直接计算法假定直线的起点、终点分别为:(x1,y1), (x2,y2),且都为整数。 计算出斜率k=(y2-y1)/(x2-x1) , 在Y轴的截距b=y1-k*x1 这样一来,只要给定 x的值,根据解析式立即可以计算出对应的y值,然后输出(x,round(y))。这种方法直观,但效率太低,因为每一步需要一次浮点乘法、一次浮点加法和一次舍入运算。数值微分法(DDA)假定...原创 2018-06-18 10:51:38 · 2204 阅读 · 0 评论 -
三维复合变换
P′=P⋅T=P⋅T1⋅T2…TnP′=P⋅T=P⋅T1⋅T2…TnP' = P\cdot T = P\cdot T_1\cdot T_2 \ldots T_n 其中,T为复合变换矩阵,T1,T2…TnT1,T2…TnT_1, T_2 \ldots T_n为单次基本几何变换矩阵。相对于任一参考点的三维几何变换在三维基本几何变换中,比例变换和旋转变换是与参考点相关的。相对于任一参考点Q...原创 2018-06-23 09:56:11 · 1367 阅读 · 0 评论 -
三维图形几何变换
同二维变换类似,三维变换同样引入了齐次坐标技术,在四维空间(x,y,z,w)内进行讨论。定义了规范化齐次坐标以后,三维图形几何变换就可以表示为物体顶点集合的规范化齐次坐标矩阵与某一变换矩阵相乘的形式。用规范化齐次坐标表示的三维图形几何变换矩阵是一个4×4方阵,简称为三维几何变换矩阵。 T=⎡⎣⎢⎢⎢adglbehmcfinpqrs⎤⎦⎥⎥⎥T=[abcpdefqghirlmns] T=\lef...原创 2018-06-23 09:55:40 · 2784 阅读 · 0 评论 -
Liang-Barsky直线段裁剪算法
参数化算法(Cyrus-Beck)考虑凸多边形区域R和直线段P1P2:P(t)=(P2-P1)*t+P1 设A是区域R的边界上一点,N是区域边界在A点的内法线向量 则对于线段P1P2上任一点P(t) N ·(P(t)-A)< 0 →→\to 外侧 N ·(P(t)-A)>0 →→\to 内侧 N ·(P(t)-A)=0 →→\to 边界或其延长线上 凸多边形的性质:...原创 2018-06-23 09:54:37 · 5440 阅读 · 0 评论 -
Cohen-Sutherland直线裁剪算法
在二维观察中,需要在观察坐标系下根据窗口大小对二维图形进行裁剪(clipping),只将位于窗口内的图形变换到视区输出。直线段裁剪是二维图形裁剪的基础,裁剪的实质是判断直线段是否与窗口相交,如相交则进一步确定直线段上位于窗口内的部分。编码原理Cohen-Sutherland直线段裁剪算法是最早流行的编码算法。每段直线的端点都被赋予一组四位二进制代码,称为区域编码(region code...原创 2018-06-23 09:53:20 · 18268 阅读 · 0 评论