3D Program
常用公式
1
两个向量
A
和
B
的标量积
(
参见第五章
):
A
B
A
B
A
B
A
B
x
x
y
y
z
z
2
两个向量
A
和
B
的矢量积
(
参见第五章
):
A
B
i
A
A
B
B
j
A
A
B
B
k
A
A
B
B
i
j
k
A
A
A
B
B
B
y
z
y
z
x
z
x
z
x
y
x
y
x
y
z
x
y
z
det
det
det
det
4
平移变换,
t
t
x
y
,
和
t
z
描述平移
(
参见第二章
):
x
y
z
t
t
t
x
y
z
x
y
z
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
5
缩放变换,
s
s
x
y
,
和
s
z
描述缩放
(
参见第二章
):
x
y
z
s
s
s
x
y
z
x
y
z
0
0
0
0
0
0
6
3D
旋转变换,角度
,
和
描述旋转
(
参见第二章
):
左手
:
-z->+x
绕
y
+y->-z
绕
x
+x->+y
绕
z
x
y
z
x
y
z
cos(
)
sin(
)
sin(
)
cos(
)
cos(
)
sin(
)
sin(
)
cos(
)
cos(
)
sin(
)
sin(
)
cos(
)
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
7
透视变换,
focus
指定了透视缩短(
perspective foreshortening
)
(
参见第二章
):
x
y
z
focus
x
y
z
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
/
既然在结果向量的最后一个元素不是
1
,通过乘上
1/(
z
/focus)
来归一化:
透视变换还有几个其它的问题。
比如说,
z=0
的点将被投影变换映射到哪里?要知道,
从上面的
公式中能看出,
z=0
的时候会导致计算错误。
另一个问题,
z
为负值的时候的计算会产生负坐标。我们看到的将会是对象(或对象的一部分)
被翻转过头了。但是,带有负
z
坐标的的对象在观察面的后面,躲在了观察者的身后。这样,我们实
际上看不到它了(至少是它的一部分)
。
解决这个问题的唯一的办法是保证没有无效的
Z
坐标
。
一条实现途径是对原始的点集进行
3D
裁
剪(在后面章节中讨论
2D
和
3D
裁剪的细节)
。
8
逆纹理映射方程,
V
U
,
是纹理空间基(
basis
)在视空间的映射,
O
是纹理空间原
点在视空间的映射(参见第三章)
:
u
i
V
O
V
O
focus
j
V
O
V
O
focus
V
O
V
O
i
V
U
V
U
focus
j
V
U
V
U
focus
V
U
V
U
z
y
y
z
x
z
z
x
y
x
x
y
y
z
z
y
z
x
x
z
x
y
y
x
(
)
/
(
)
/
(
)
(
)
/
(
)
/
(
)
v
i
U
O
U
O
focus
j
U
O
U
O
focus
U
O
U
O
i
V
U
V
U
focus
j
V
U
V
U
focus
V
U
V
U
y
z
z
y
z
x
x
z
x
y
y
x
y
z
z
y
z
x
x
z
x
y
y
x
(
)
/
(
)
/
(
)
(
)
/
(
)
/
(
)
11
直
线方程,
C
同向向量
(
co-directed vector
)
,
Q
是在直线上的点
(参见第五章)
:
X
Q
tC
11
平
面方程,
N
是法向量,
P
是平面上的点
(
参见第五章
):
(
)
X
P
N
0
12
球
方程,
M
是球心,
r
是其半径
(
参见第五章
):
(
)
X
M
r
11
寻
找直线和平面的交点
(
参见第五章
):
X
Q
tC
X
P
N
Q
tC
P
N
(
)
(
)
0
0
tC
N
P
Q
N
t
P
Q
N
C
N
(
)
(
)
12
寻
找直线和球的交点
(
参见第五章
):
X
Q
tC
X
M
X
M
r
Q
tC
M
Q
tC
M
r
(
)
(
)
(
)
(
)
2
2
(
)(
)
(
)
Q
M
Q
M
tC
Q
M
t
C
C
r
2
0
2
2
16
H
ermite
平面曲线方程,
P
P
1
2
,
是端点,
V
V
1
2
,
是曲线在端点上的切线
(
参见第六章
):
x
t
y
t
t
t
t
P
P
V
V
(
)
(
)
3
2
1
2
1
2
1
2
2
1
1
3
3
2
1
0
0
1
0
1
0
0
0
15
B
é
zier
平面曲线方程,
P
P
P
P
1
2
3
4
,
,
,
是其控制点
(
参见第六章
):
x
t
y
t
t
t
t
P
P
P
P
(
)
(
)
3
2
1
2
3
4
1
1
3
3
1
3
6
3
0
3
3
0
0
1
0
0
0
16
3
D
双三次面片的一般形式,
G
包含控制点
(
参见第六章
):
x
t
s
y
t
s
z
t
s
t
t
t
M
G
M
s
s
s
T
(
,
)
(
,
)
(
,
)
3
2
3
2
1
1
16
环
境照明模型
(
参见第八章
):
I
K
I
reflected
object
ambient
17
漫
反射照明模型
(
参见第八章
):
I
K
I
K
I
reflected
ambient
ambient
diffuse
i
directed
i
,
cos