《计算机图形学-第五章 曲线曲面生成》由会员分享,可在线阅读,更多相关《计算机图形学-第五章 曲线曲面生成(36页珍藏版)》请在金锄头文库上搜索。
1、第五章 曲线曲面的生成,5.1曲线的生成 5.2曲面的生成,本章主要内容,曲线曲面的表示方法 规则曲线的几种主要形式 三次参数样条曲线、三次B样条曲线、三次Bezier曲线 Coons曲面、Bezier曲面、B样条曲面,在工程上,曲线曲面的应用十分广泛。如根据实验、观测或数值计算获得的数据来绘制出一条光滑的曲线,以描述事物的各种规律。在汽车、飞机、船舶的等产品的外形设计中,要用到大量的曲线和曲面来描述其几何形状。 表示曲线和曲面的基本方法有两种:参数法和非参数法。 (1)非参数法 y=f(x) 显函数(不能表示封闭或多值的曲线) f(x,y)=0 隐函数(方程的根很难求) (2)参数法 x=f
2、(t) y=g(t) 求导很方便,不会出现计算上的困难,曲线曲面,曲线曲面理论的发展,1963 Ferguson:三次参数曲线 1964 Coons:Coons曲面 1971 Bezier: Bezier曲线、曲面 1972 De Boor:B样条标准计算方法 1974 Gordon /Risenfeld: B样条曲线曲面,工程上常用的曲线可以分为两类: 规则曲线 不规则曲线(拟合曲线或自由曲线)。,5.1曲线的生成,规则曲线,可以用函数或参数方程直接表示的曲线。,二维平面,x=f(t) y=g(t),空间曲线,x=f(t) y=g(t) z=h(t),参数t在一定区间变化,可以求得曲线上不同
3、的坐标点,连接这些坐标点就能在屏幕上画出曲线,t变化间隔越小,曲线画得越精细。,例如:椭圆,x=a cos y=b sin,=0360变化 =1,规则曲线,圆锥曲线:圆、椭圆、抛物线和双曲线。 渐开线:与圆相切的直线按一定方向在圆周上做滚动,该直线上一点P的轨迹 摆线:平摆线、外摆线、内摆线 平摆线:已知圆在X轴上作纯滚动,圆周上一点P的轨迹 外摆线:一个动圆(在基圆外侧)在基圆上作滚动时,该圆上一点P的轨迹 内摆线:一个动圆(在基圆内侧)在基圆内部做滚动时,该圆上一点P的轨迹,工程中除了用到前述的规则曲线外,还常常遇到这样的情况:已知一些计算值或测试数据,要构造一条光滑曲线,通过或贴近这些离
4、散点数据,这样构造出来的曲线称为拟合曲线(自由曲线)。,拟合曲线,拟合曲线通常采用二次或三次参数曲线的形式,我们主要介绍三次拟合曲线。,通过离散点,贴近离散点,拟合曲线,曲线的拟合:完全通过或比较贴近给定型值点来构造曲线的方法。 光滑连接:两条曲线段在连接点出有相同的切线。 位置连续:两条曲线段有一个端点位置相同。 一阶导数连续:在连接点处切线是相同的。 二阶导数连续:在连接点处有相同的曲率。,主要三类拟合曲线: Ferguson曲线(三次参数样条曲线段) 三次Bezier曲线 B样条曲线,拟合曲线,参数三次曲线段可以描述成 :,P(t)=At3+Bt2+Ct+D=,t3 t2 t 1,A B
5、 C D,=,t3 t2 t 1,M,T,0t 1,Ferguson曲线,P(t) =,P(0)= Q1 =,P(1)= Q1 =,P(0)= Q0 =,P(1)= Q1 =,3t2 2t 1 0,0 0 0 1,1 1 1 1,0 0 1 0,3 2 1 0,M,M,M,M,M,Q0,Q0,Q1,Q1,。,。,。,。,。,。,。,Q0,Q1,Q0,Q1,=,0 0 0 1,1 1 1 1,0 0 1 1,3 2 1 0,M,Q0,Q0,Q1,=,2 -2 1 1,-3 -3 -2 -1,0 0 1 0,1 0 1 0,Q1,M,。,。,。,。,P(t)=,t3 t2 t 1,Q0,Q0,Q1
6、,2 -2 1 1,-3 -3 -2 -1,0 0 1 0,1 0 1 0,Q1,。,。,0t 1,Ferguson曲线,Ferguson曲线,曲线形状由两端点的位矢和切矢控制 端点的边界条件发生变化曲线随之变化 缺少灵活性和直观性,使用不方便,Ferguson曲线需要知道起点、终点的切矢,这在实际工作中很难确定,如果将切矢用位矢代替,问题就会迎刃而解,Bezier就是从这点入手的。 三次Bezier曲线的构造:,Q01=Q0+1/p*Q0 Q0=p(Q01-Q0) Q10=Q1+1/p*Q1 Q1=p(Q10-Q1),代入上式,。,。,。,。,Bezier曲线,Q0,Q0,Q1,Q1,。,。
7、,Q01,Q10,。,P(t)=,t3 t2 t 1,2-p p -p 2+p,-3+2p -2p p 3-p,-p p 0 0,1 0 0 0,Q0,Q10,Q1,Q01,0t 1,P(t)=,t3 t2 t 1,2 -2 1 1,-3 3 -2 -1,0 0 1 0,1 0 0 0,Q0,Q1,P(Q01-Q0),P(Q10-Q1),0t 1,Bezier曲线,由,A0(t) + A1(t) + A2(t) + A3 (t)1,A0(t)0 A1(t) 0 A2(t) 0 A3 (t) 0,得出: 0 p3 p=3 时,逼近性最好。,柯西条件:(满足凸包性要求),A0(t) A1(t) A
8、2(t) A3 (t),Q0,Q10,Q11,Q01,=,A0(t)Q0 + A1(t)Q01 + A2(t)Q10 + A3 (t)Q1,P(t),Bezier曲线,Y(t)=,t3 t2 t 1,3 -6 3 0,-3 3 0 0,1 0 0 0,Y0,Y1,Y2,Y3,-1 3 -3 1,0 t1,P(t)=,t3 t2 t 1,3 -6 3 0,-3 3 0 0,1 0 0 0,Q0,Q1,Q2,Q3,-1 3 -3 1,0 t1,X(t)=,t3 t2 t 1,3 -6 3 0,-3 3 0 0,1 0 0 0,X0,X1,X2,X3,-1 3 -3 1,0 t1,Bezier曲线,
9、X(t)=A0+A1t+A2t2+A3t3 Y(t)=B0+B1t+B2t2+B3t3,A0=x0 A1=-3x0+3x1 A2=3x0-6x1+3x2 A3=-x0+3x1-3x2+x3,B0 B3计算式同上,只要将y0,y1,y2,y3代替x0,x1,x2,x3即可。,Q0,Q1,Q2,Q3,Bezier曲线,Bezier曲线,特征多边形: Q0 ,Q1, Q2, Q3四个控制点连成的折线多边形。 曲线形状由多边形顶点位置确定,特征多边形改变曲线则改变。,Bezier曲线的连接,Q2,Q3,Q4位于同一条直线才能保证两Bezier曲线段光滑连接。,Bezier曲线不足: 特征多边形的边数与
10、曲线的次数有关。 Bezier曲线是一个整体的逼近方案(牵一发动全身)。,Q0,Q1,Q3,Q2,Q5,Q4,Q6,三次B样条曲线对三次Bezier曲线进行改进,它克服了Bezier曲线的不足,同时保留了Bezier曲线的直观性和凸包性,是一种工程设计中更常用的拟合曲线。,三次B样条曲线的构造: 由前面可知,三次参数曲线可以表示成: P(t)=A0(t) Q0 + A1(t) Q1 + A2(t) Q2 + A3 (t) Q3 (1) A0(t),A1(t),A2(t),A3 (t)是待定参数,B样条曲线,P1 由Q0,Q1,Q2,Q3确定 P2 由Q1,Q2,Q3,Q4确定,Q0,Q1,Q3
11、,Q2,Q4,P1,P2,P1 (1)=P2 (0) P1 (1)=P2 (0),P1 (1)=P2 (0),A0(t) + A1(t)+ A2(t) + A3 (t)=1,A0(t) ,A1(t) , A2(t) , A3 (t)0,确定 A0(t) ,A1(t) , A2(t) , A3 (t) 代入(1)式,P(t)=,t3 t2 t 1,3 -6 3 0,-3 0 3 0,1 4 1 0,Q0,Q1,Q2,Q3,-1 3 -3 1,0 t1,1/6,。,。,。,。,。,。,对于B样条曲线来说,特征多边形每增加一个顶点,就相应增加一段B样条曲线。因此, B样条曲线很好地解决了曲线段的连接
12、问题。,B样条曲线,X(t)=,t3 t2 t 1,X0,X1,X2,X3,0 t1,Y(t)=,t3 t2 t 1,Y1,Y2,Y3,0 t1,1/6,1/6,X(t)=A0+A1t+A2t2+A3t3 Y(t)=B0+B1t+B2t2+B3t3,展开:,3 -6 3 0,-3 0 3 0,1 4 1 0,-1 3 -3 1,3 -6 3 0,-3 0 3 0,1 4 1 0,-1 3 -3 1,Y0,B样条曲线,其中:,A0=(x0+4x1+x2)/6 A=-(x0-x2)2 A2=(x0-2x1+x2)/2 A3=-(x0-3x1+3x2-x3)/6,B0 B3计算式同上,只要将y0,y
13、1,y2,y3代替x0,x1,x2,x3即可。,编程步骤: (a)计算A0 A3 , B0 B3 (b)将t在0 1之间变化,计算相应X(t),Y(t) (c)将坐标点X(t),Y(t)逐点相连。,B样条曲线,5.2曲面,平面曲线:,空间曲线:,P(t)=,P(t)=,x(t) , y(t) ,x(t) , y(t),z(t) ,r(u,w)=,x(u,w), y(u,w), z(u,w),参数t,参数u,w,在汽车、飞机、船舶的等产品的外形设计和放样工作中,曲面的应用非常广泛,这些部门对曲面的研究十分重视。从某种意义上讲,曲面的表示可以看作是曲线表示方法的延伸和扩展。 例如:,曲面:,常见的
14、拟合曲面有三种: Coons曲面, Bezier曲面 B样条曲面, 我们主要介绍三次曲面。,拟合曲面,Coons曲面,Coons曲面是用四个角点处的位矢、切矢和扭矢等信息来控制的。 在描述Coons曲面时,采用由Coons本人创造的一套记号,从而使表达式间接明了。 曲面r(u,w)记作 uw,四角点位矢记作: 00=r(0, 0) 01= r(0, 1) 10= r(1, 0) 11= r(1, 1),00,01,10,11,X,Y,Z,u,w,0u,1u,0w,1w,x(u,w), y(u,w), z(u,w),uw =,00u=,r(u,w),U=0 W=0,u,01u=,r(u,w),U
15、=0 W=1,u,10u=,r(u,w),U=1 W=0,u,11u=,r(u,w),U=1 W=1,u,四角点沿w方向切矢记作:,00w=,r(u,w),U=0 W=0,w,01w=,r(u,w),U=0 W=1,w,10w=,r(u,w),U=1 W=0,w,11w=,r(u,w),U=1 W=1,w,四角点沿u方向切矢记作:,00 uw=,r(u,w),U=0 W=0,u,01uw=,2 r(u,w),U=0 W=1,u,10uw=,2 r(u,w),u,11uw=,2 r(u,w),u,四角点处的扭矢记作:,U=1 W=0,U=1 W=1,十六个控制信息写成矩阵:,C,00 01,10 11,00u 01u,10u 11u,00uw 01uw,10uw 11uw,00w 01w,10w 11w,