计算机图形学是借助计算机生成图形图像的艺术或科学
图形生成、图形变换、交互技术
相同点:像素层面图像和图形是一致的
不同点:处理过程是互逆的
计算机图形学是从目标描述产生图形显示
数值图像处理是对图像进行描述
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?yk?d2?=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?=fe?llipse(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-样条曲线的构造复杂;
分形绘制的典型重要方法,在仿射变换的意义下,具有自相似结构,几何对象的整体被定义后,
选定若干仿射变换,将整体形态变换到局部,迭代进行,直到满意造型。
反走样:光线跟踪算法的本质是对画面的点采样
加速技术:包围盒技术、空间分割技术
特点
? 绘制与消隐同时实现
? 模拟全局的漫反射和折射现象
? 计算量巨大:求交、逐点计算
? 与视线有关,换个方向,重新计算