计算机图形学是借助计算机生成图形图像的艺术或科学
图形生成、图形变换、交互技术
相同点:像素层面图像和图形是一致的
不同点:处理过程是互逆的
计算机图形学是从目标描述产生图形显示
数值图像处理是对图像进行描述
y = m x + b y k + 1 = y k + m s e t p i x e l ( x k + 1 , r o u n d ( y k + 1 ) ) y=mx+b \\ y_{k+1}=y_k + m \\ setpixel(x_{k+1},round(y_{k+1})) y=mx+byk+1=yk+msetpixel(xk+1,round(yk+1))
d 1 = y − y k d 2 = y k + 1 − y p k = Δ x ( d 1 − d 2 ) = 2 Δ y x k − 2 Δ x y k + C p k + 1 − p k = 2 Δ y − 2 Δ ( y k + 1 − y k ) p 0 = 2 Δ y − Δ x (可以理解为 1 , 0.5 带进去) d_1=y-y_k \\ d_2 = y_k + 1-y \\ p_k=\Delta x(d_1-d_2)=2\Delta y x_k-2\Delta x y_{k} + C \\ p_{k+1}-p_k=2\Delta y-2\Delta(y_{k+1}-y_k) \\ p_0=2\Delta y -\Delta x (可以理解为1,0.5带进去) d1=y−ykd2=yk+1−ypk=Δx(d1−d2)=2Δyxk−2Δxyk+Cpk+1−pk=2Δy−2Δ(yk+1−yk)p0=2Δy−Δx(可以理解为1,0.5带进去)
无乘法,无浮点运算
f l i n e = a x + b y + c p k = f l i n e ( x k + 1 , y k + 1 2 ) p k + 1 − p k = a + b ( y k + 1 − y k ) p 0 = f l i n e ( x 1 + 1 , y 1 + 1 2 = a + 0.5 b ) f_{line}=ax+by+c \\ p_k = f_{line}(x_k+1,y_k+\frac{1}{2}) \\ p_{k+1}-p_k = a+b(y_{k+1}-y_k) \\ p_0=f_{line}(x_1+1,y_1+\frac{1}{2}=a+0.5b) fline=ax+by+cpk=fline(xk+1,yk+21)pk+1−pk=a+b(yk+1−yk)p0=fline(x1+1,y1+21=a+0.5b)
无乘法,无浮点运算
d 1 = y k − y d 2 = y − ( y k − 1 ) d 1 ′ = y k 2 − y 2 d 2 ′ = y 2 − ( y k − 1 ) 2 p k = d 1 ‘ − d 2 ’ p k + 1 − p k = p 0 就是 ( 0 , R 2 ) 带进去 d_1=y_k-y\\ d2=y-(y_k-1)\\ d_1^{'}=y_k^2-y^2 \\ d_2^{'}=y^2-(y_k-1)^2 \\ p_k=d_1^{‘}-d_2^{’}\\ p_{k+1}-p_k=\\ p_0就是(0,R^2)带进去 d1=yk−yd2=y−(yk−1)d1′=yk2−y2d2′=y2−(yk−1)2pk=d1‘−d2’pk+1−pk=p0就是(0,R2)带进去
f c i r c l e ( x , y ) = x 2 + y 2 − R 2 p k = f c i r c l e ( x k + 1 , y k − 0.5 ) p k + 1 − p k = p 0 带入 ( 0 , R ) 约为 1 − R f_{circle}(x,y)=x^2+y^2-R^2\\ p_k=f_{circle}(x_k+1,y_k-0.5) \\ p_{k+1}-p_k = \\ p_0带入(0,R)约为1-R fcircle(x,y)=x2+y2−R2pk=fcircle(xk+1,yk−0.5)pk+1−pk=p0带入(0,R)约为1−R
第一象限分两个区域
m = d y / d x = − ( 2 b 2 x ) / ( 2 a 2 y ) m=dy/dx=-(2b^2x)/(2a^2y) m=dy/dx=−(2b2x)/(2a2y)
f e l l i p s e ( x , y ) = b 2 x 2 + a 2 y 2 − a 2 b 2 p k = f e l l i p s e ( x k + 1 , y k − 0.5 ) p k + 1 − p k = p 0 带入 ( 0 , b ) 第二阶段 q k = f e l l i p s e ( x k + 0.5 , y k − 1 ) q 0 带入区域 1 终点 ( x 0 , y 0 ) , b 2 x 0 = a 2 y 0 f_{ellipse}(x,y)=b^2x^2+a^2y^2-a^2b^2\\ p_k=f_ellipse(x_k+1,y_k-0.5) \\ p_{k+1}-p_k = \\ p_0带入(0,b) \\ 第二阶段q_k=f_{ellipse}(x_k+0.5,y_k-1)\\ q_0带入区域1终点(x_0,y_0),b^2x_0=a^2y_0 fellipse(x,y)=b2x2+a2y2−a2b2pk=fellipse(xk+1,yk−0.5)pk+1−pk=p0带入(0,b)第二阶段qk=fellipse(xk+0.5,yk−1)q0带入区域1终点(x0,y0),b2x0=a2y0
• 扫描转换法:按扫描线顺序确定每个点是否在区域内——边定义的多边形;
• 种子填充法:已知种子点,遍历区域内与种子点相连的点——边界点定义的多边形
1.建立边表ET:(y_max,x_start,1/m,^)
2.建立有序边表SET:(y_max,x_start,1/m,^) 按y进行排序,相邻的就用指针指向
3.建立活性边表AET:(y_max,x_i+1,1/m,^)
特点:
• 方便、简洁、有快速算法
• 不能局部调整
• 控制点的个数决定曲线多项式的次数
• B-样条曲线的参数多项式次数与控制点的个数无关;
• B-样条曲线不一定通过第一和最后控制点;
• 允许局部调整,代价是B-样条曲线的构造复杂;
分形绘制的典型重要方法,在仿射变换的意义下,具有自相似结构,几何对象的整体被定义后,
选定若干仿射变换,将整体形态变换到局部,迭代进行,直到满意造型。
反走样:光线跟踪算法的本质是对画面的点采样
加速技术:包围盒技术、空间分割技术
特点
• 绘制与消隐同时实现
• 模拟全局的漫反射和折射现象
• 计算量巨大:求交、逐点计算
• 与视线有关,换个方向,重新计算