计算机图形学重点和难点指导 联系客服

发布时间 : 星期三 文章计算机图形学重点和难点指导更新完毕开始阅读504283a1af45b307e87197ae

式中,Near和Far是常数。对于透视投影,场景中所有投影均位于以视点为顶点,连接视点与屏幕四角点为棱边的没有底面的正四棱锥内。当屏幕离视点太近或太远时,物体因变得太大或太小而不可识别。在观察坐标系内定义视域四棱锥的zv向近剪切面和远剪切面分别为Near和Far,经zv向裁剪后的视域正四棱锥转化为正四棱台,也称为观察空间或视景体,如图19所示。

yvzv=Farzv=NearxvOvzv

图19 透视投影的观察空间

第7章 自由曲线与曲面

重点: Bezier曲线的定义;de Casteljau算法;Bezier曲面;B样条曲面; 难点:Bezier曲线的拼接;

第7章重点学习指导:

1. Bezier曲线的定义

给定n+1个控制点Pi(i=0,1,2??n),则n次Bezier曲线定义为

p(t)??PiBi,n(t) ,t∈[0,1]

i?0n式中,Pi(i=0,1,2??n)是控制多边形的n+1个控制点。控制多边形是连接n条边构成的多边形。Bi,n(t)是Bernstein基函数,其表达式为

Bi,n(t)?n!iiti(1?t)n?i?Cnt(1?t)n?i ,(i=0,1,2??n)

i!(n?i)!式中00=1,0!=1。

从式(7-1)可以看出,Bezier曲线是控制多边形的控制点关于Bernstein基函数的加权和。

三次Bezier曲线写为

p(t)?t3?t2??13?3?3?63t1????330?00?1?1??P0??P?0????1? ,t∈[0,1] 0??P2????0??P3?2. de Casteljau算法

依次对原始控制多边形的每一边执行同样的定比分割,所得的分点就是第一级递推生成的中间顶点Pi1(i=0,1,?,n-1),对由这些中间顶点构成的控制多边形再执行同样的定比分割,得到第二级递推生成的中间顶点Pi2(i=0,1,?,n-2),重复进行下去,直到r=n,得到一个中间顶点P0n,该点的轨迹即为Bezier曲线上的点P(t)。

三次Bezier曲线递推如下

?P01(t)?(1?t)?P00(t)?t?P10(t)?100?P1(t)?(1?t)?P1(t)?t?P2(t)?P1(t)?(1?t)?P0(t)?t?P0(t)23?2

?P02(t)?(1?t)?P01(t)?t?P11(t)?211?P1(t)?(1?t)?P1(t)?t?P2(t)

2P03(t)?(1?t)?P02(t)?t?P1(t)

图示如下:

P01P11P202P1P02P01P30P21P00P30

(a)绘制t=1/3的点

0P1P11P20P01P02P032P1P21P00P30

(b)绘制t=2/3的点

0P1P20P00P303(c) P 点的运动轨迹 0图20 de Casteljau递推算法

3. Bezier曲面

Bezier曲面是由Bezier曲线拓广而来,以两组正交的Bezier曲线控制点构造空间网格来生成曲面。m×n次Bezier曲面的定义为

p(u,v)???Pi,jBi,m(u)Bj,n(v) i?0j?0mn (u,v)∈[0,1]×[0,1] (7-15)

式中,Pi,j(i=0,1,?,m;j=0,1,?,n)是(m+1)×(n+1)个控制点。和

Bi,m(u)Bj,n(v)是Bernstein基函数。

P2,3P1,3P2,2P0,3P0,2P0,1P1,1P1,0P2,1P2,0P3,0P0,0P3,2P3,3P3,1

图21 双三次Bezier曲面及其控制网格

依次用线段连接点列Pi,j(i=0,1,?,m;j=0,1,?,n)中相邻两点所形成的空间网格称为控制网格。当m=3,n=3时,由4×4=16个控制点构成控制网格,如图21所示,其相应的曲面称为双三次Bezier曲面。 4. 三次B样条曲线

给定m+n+1个控制点Ph(h=0,1,2,?,m+n),n次B样条曲线段的参数表达式为

pi,n(t)??Pi?kNk,n(t) t?[0,1]

k?0ni= 0,1,2,?,m;k=0,1,2,?,n

式中, Nk,n(t)为B样条基函数,其形式为

1n?kNk,n(t)??(?1)jCnj?1(t?n?k?j)n

n!j?0其中,Cn?1?j(n?1)!

j!(n?1?j)!上式为n次B样条曲线的第i段曲线(i=0,1,2,?,m)。连接全部曲线段(m+1段)所组成的整条曲线称为n次B样条曲线。依次用线段连接控制点Pi+k(k=0,1,2,?,n)组成的多边形称为B样条曲线在第i段的控制多边形。

可以看出,B样条曲线是分段构成的,所以控制多边形对曲线的控制灵活直观。若给定m+n+1个控制点,可以构造一条n次B样条曲线,它是由m+1段n次曲线首尾相接而成,而每段曲线则由n+1个顶点所构造。由于n次B样条曲线可以达到n-1阶连续性,在工程设计中,二次B样条曲线和三次B样条曲线应用得较为广泛。 5. 双三次B样条曲面

B样条曲面是B样条曲线的二维推广,给定(m+1)×(n+1)个控制点Pi,j(i=0,1,?,m;j=0,1,?,n),m×n次B样条曲面的定义为

p(u,v)???Pi,jNi,m(u)Nj,n(v)i?0j?0mn ,(u,v)∈[0,1]×[0,1] (7-29)

式中,Pi,j(i=0,1,?,m;j=0,1,?,n)是(m+1)×(n+1)个控制点。和

Ni,m(u)Nj,n(v)是B样条基函数。

依次用线段连接点列Pi,j(i=0,1,?,m;j=0,1,?,n)中相邻两点所形成的空

间网格称为控制网格。如果m=n=3,则由4×4=16个顶点构成控制网格,其相应的曲面称为双三次B样条曲面。如图22所示。

P2,3P1,3P0,3P0,2P0,1P1,2P1,1P1,0P3,2P2,2P3,3P3,1P2,1P2,0P3,0P0,0图22 16个控制点的双三次B样条曲面

第7章难点学习指导: 1. Bezier曲线的拼接