计算机图形学 第6章 曲面
当x0 = x2, y0 = y1时,平面变为矩形平面,矩形 平面是平面的特例,其中一种参数方程为 x = x0 + (x1 - x0)u y = y0 + (y2 - y0)v z=0 u,v[0,1]
(2) 双线性曲面
给定任意4个角点的坐标值,可构成如下参数方程的双线性曲 面: x = x00 (1-u)(1-v) + x01(1-u)v + x10(1-v)u + x11 uv y = y00 (1-u)(1-v) + y01(1-u)v + y10(1-v)u + y11uv z = z00 (1-u)(1-v) + z01(1-u)v + z10 (1-v)u + z11uv
(2) 椭球面
在空间直角坐标系中,(x0, y0 z0)为球心、x方 向的轴为a、y方向的轴为b、z方向的轴为c的 椭球面的参数方程为 x = x0 + acosu cosv y = y0 + bcosu sinv z = z0 + csinu u[-90°,90°] v[0°,360°]
圆球面是椭球面的一个特例,当椭球面参数方 程中的a = b = c时,就是一个圆球面。
第6章 曲 面 生 成
6.1 参数曲面及其生成
三维曲面常用双参数表示: X = x(u,v) Y = y(u,v)
Z = z(u,v)
u∈ [u1,u2],v ∈ [v1,v2]
曲面定义域中的一对(u, v)对应曲面上的一个点。如果u 值固定(为一常数),v值变化,相当于只有一个参数v, 则可得到一条称为u线的曲线;反之,如果v值固定(为 一常数),u值变化,相当于只有一个参数u,则可得到 一条称为v线的曲线。在一定范围内,所有u线与v线组成 一个由曲线网形成的曲面片。曲面片是用于曲面造型的 最简单的数学元素。
P=
p00 p10 p20 p30
p01 p11 p21 p31
p02 p12 p22 p32
p03 p13 p23 p33
图6-8 柱面
设g(u)是如下正弦曲线: gx(u) = 400u
gy(u) = 30sin(4u)
gz(u) = 10 u∈ [0,1]
圆柱是柱面的一个特例
(2) 直纹面
直线以一个自由度运动的轨迹形成的曲面称为直纹面,又称单线 性曲面,最简单的直纹面是平面、锥面和柱面。
当g(u)与h(u)都为二次B样条曲线时,且控制点分别为(gx(i), gy(i))(i = 0, 1, 2,…, n),(hx(i), hy(i))(i = 0, 1, 2,…, n)(设投影面为z = 0面, 所以只考虑x、y两个方向的值),单线性曲面可表示为
u, w [0,1]
式中,pij是特征多面体的顶点,它们形成(m + 1) × (n + 1)矩形点阵,Bi,m(u)和Bj,n(w)是Bernstein基函数。
在双三次Bezier曲面中,4条基线只有p0(w)和p3(w)在曲 面上,而pl(w)和p2(w)不在曲面上。在给定的16个顶点中, 只有4个角点p00、p03、p30和p33在曲面上,其余顶点均不 在曲面上。点p10、p20、p01、p02、p31、p32、p13和p23控制 边界曲线的斜率。点p11、p21、p12、p22起着双三次曲面 片扭矢的作用,控制着边界曲线的跨界斜率。
u[0,1] v[0°,360°]
(3) 圆柱面 母线为直线且平行于x轴(x1= x2),该直线绕y轴 旋转就是一个圆柱面 x’= x1cosv y’= y1+( y2- y1)u z’= x1sinv
u[0,1] v[0°,360°]
6.3 双线性曲面
双线性曲面是曲面的参数方程关于u、v都是线性的。 因此构成双线性曲面的u线与v线都是直线。
6.2.2 旋转曲面 曲线Q(称为母线)绕一个定直线旋转一周所形成的 曲面称为旋转曲面。
图6-3 旋转面推导示意图
(1) 圆环面
母线为一个圆心在(x0, y0)处的圆,参数方程为:
x = x0+rcosu
y = y0+rsinu
该圆绕y轴旋转就是一个圆环曲面
x’= (x0+rcosu)cosv
y’= y0+rsinu z’= (x0+rcosu)sinv u[0°,360°] v[0°,360°]
(2) 圆锥面
母线为起点(x1, y1)到终点(x2, y2)的直线段,参数方 程为: x = x1 + ( x2- x1)u y = y1 + ( y2 - y1)u
该直线绕y轴旋转就是一个圆锥曲面
x’= (x1+( x2- x1)u)cosv
y’= y1+ ( y2- y1)u
z’= (x1+ ( x2- x1)u)sinv
(1)若P(1) (u, w)和P(2)(u, w)达到C0连续, 需要在边界上有一个共同的特征多边形 (2) 若P(1)(u, w)和P(2)(u, w)达到C l连续,对于w [0, 1]中的所有w,P(1)(u, w)在u = 1的切平面必须与 P(2)(u, w)在u = 0的切平面重合,即两曲面片的法线 方向跨界时是连续的。
z = (1 - v)gz(u) + vhz(u)
v[0,1] u[u1,u2]
(1) 柱面 柱面是单线性曲面的一种情形,它是由一条直母线 沿一条曲线并与它自身平行地移动所生成的曲面。 如图6-8所示,g(u)是任意一条空间曲线,而r是起点 (x1, y1)到终点(x2, y2)直母线方向矢量,这样可得到柱 面片更一般的表达式: x = gx(u) + x1 + (x2 - x1)v y = gy(u) + y1 + (y2 - y1)v z = gz(u) + z1 + (z2- z1)v
6.2 规则参数曲面 6.2.1 球面 (1) 圆球面 圆球面可看成空间中与一定点的距离为定值的动点 的轨迹。定点称为球心,定距离称为半径。圆球面 也可以看成是由半圆绕着它的直径旋转一周所形成 的曲面。在空间直角坐标系中,以(x0, y0, z0)为球心, 半径为R的球面的参数方程为 x = x0+ Rcosu cosv y = y0+ Rcosu sinv z = z0+ R sinu u[-90°, 90°] v[0°, 360°]
生成平面的程序设计思路为:在u的取值范围内以一定 的增量循环改变u值,当u值确定后,取v的起始取值(v = 0)与终止取值(v = 1),计算直线的起点与终点坐标, 并画直线,这时可生成u直线;再循环改变v值,当v值 确定后,取u的起始取值(u = 0)与终止取值(u = 1),计 算直线的起点与终点坐标,并画直线,这时可生成v直 线;两簇直线组合就形成了一个平面,如图所示。
z=0
6.4 单线性曲面 单线性曲面是曲面的参数方程是关于u或v是线性的, 而关于另一个参数是非线性的。下列方程是关于v 线性、关于u非线性的单线性曲面,其中g(u)、h(u) 是空间中任意两条曲线。
x = (1 - v)gx(u) + vhx(u)
y = (1 - v)gy(u) + vhy(u)
6.6 B样条曲面 B样条曲面和Bezier曲面一样,由特征多面体定义,曲 面的形状逼近该多面体,B样条曲面方程为
p(u, w)
p N
ij i 0 j 0
m
n
i , k (u ) N j ,l ( w)
pij是定义多面体的顶点,Ni, k(u)和Nj, l(w)是调和函数, 幂次分别由k和l控制,k和l的值越大,曲面逼近多面体 的效果越差。
6.5 Bezier曲面及其拼合
6.5.1 Bezier曲面
如同Bezier曲线有一个特征多边形一样,Bezier曲面有 一个特征多面体。对Bezier 曲线上点的一般方程做简单 的推广,便可得到Bezier曲面上点的方程: p(u, w) =
p B
ij i 0 j 0
m
niΒιβλιοθήκη , m (u ) B j , n ( w)
(1) 平面 构造一个平面片有多种方法,这里介绍一种平面片 参数方程 x = x0+ (x1 - x0)u + (x2 - x0)v y = y0+ (y1- y0)u + (y2 - y0)v z = z0+ (z1 - z0)u + (z2 - z0)v u,v[0,1] 上式定义了通过三点(x0, y0, z0)、(x1, y1, z1)、(x2, y2, z2) 的平面片。
双三次B样条曲面方程:
P(u, w)
N
i 0 j 0
m
n
i ,4 (u ) pij N j ,4 ( w)
T 上式方程写成矩阵形式为 P(u, w) = UMBP M BW T
Uk = (uk - 1 uk - 2 … u1) Wl = (wl - 1 wl - 2 … w1)
-1 3 -3 1 3 -6 3 MB 6 -3 0 3 1 4 1 1 0 0 0
x = (1 - v)(gx (i)(1 - u)2 /2 + gx (i + 1) (-2u2 + 2u + 1)/2 + gx (i + 2)(u2/2)) +v( hx (i)(1 - u)2 /2+hx (i +1) (-2u2+2u+1)/2+hx (i+2)(u2/2)) y = (1 - v)(gy (i)(1 - u)2 /2 + gy(i + 1) (-2u2 + 2u + 1)/2 + gy (i + 2)(u2/2)) + v( hy (i)(1 - u)2 /2 + hy (i + 1) (-2u2 + 2u + 1)/2 + hy (i + 2)(u2/2)) u, v∈ [0, 1], i = 0, 1, 2,…, n - 2