当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

吉林大学:《计算机图形学》课程电子教案(PPT课件)第四章 曲线和曲面 第四节(2/2)

资源类别:文库,文档格式:PPT,文档页数:29,文件大小:271KB,团购合买
点击下载完整版文档(PPT)

void bez to points(int n,int npoints,double Pl,double points)∥P为控制点坐标points为采用几 何作图算法生成的Bezier曲线上的离散点序列 离散点序列points的个数为npoints 控制点P的个数为n+1 double t,delt; delt=l.0/(double)npoints;:/W将参数t npoints等分 t=0.0; for(int i=0;i<=npoints;i++) points[i=decas(n,P,t);∥分别求出 npoints+-1个离散点points的坐标 t+=delt;

void bez_to_points(int n,int npoints,double P[],double points[]) // P为控制点坐标 points为采用几 何作图算法生成的Bezier曲线上的离散点序列 离散点序列points的个数为npoints 控制点P的个数为n +1 { double t,delt; delt=1.0/(double)npoints;//将参数t npoints等分 t=0.0; for(int i=0;i<=npoints;i++) { points[i]=decas(n, P, t); // 分别求出 npoints+1个离散点points的坐标 t+=delt; } }

double decas(int n,double P[l,double t) int m,i; double *R,*Q,P0; R=new double n+1]; Q=new double[n +1]; for(i=0;i0;m--)

double decas(int n,double P[],double t) { int m,i; double *R, *Q, P0; R = new double[n +1]; Q = new double[n +1]; for(i=0;i0;m--) {

/n次Bezier曲线在点t的值,可由两条n-1次 Bezier曲线在点t的值通过线性组合而求得。 for(i=0;i<=m-1;++) Q=R+t*(R+1-R); for(i=0;i<=m-1;i++) R[]=Q [i]; P0=R0]; delete R; delete Q; return (PO);

//n次Bezier曲线在点t的值,可由两条n-1次 Bezier曲线 在点t的值通过线性组合而求得。 for(i=0;i<= m -1;i++) Q[i]= R [i]+t*( R [i+1]- R [i]); for(i=0;i<= m -1;i++) R[i]= Q [i]; } P0=R[0]; delete R; delete Q; return (P0); }

设给出四点的坐标是1,1),(2,3),(4,3) (3,1),求所确定三次Bezier曲线在t=1/3时的 值P0,算法的计算过程 m=3 mF2 mF1 P1,1尸→R0 Q(43,53)-R Q(169,19/9y→R0 Qd59/27,21/9)=P1/3) P1(2,3)-R1 Q1(83,3尸R Q1(3,259-R P2(4,3)+R2 Q2(11/3,7/3)→R2 P(3,1→R Bezier几何作图算法计算过程

设给出四点的坐标是(1,1),(2,3),(4,3), (3,1),求所确定三次Bezier曲线在t=1/3时的 值P(),算法的计算过程 Bezier几何作图算法计算过程

设控制点序列Po,P1,,P确定 的n次Bezierl曲线是P(t),用如下递 归方式计算另一组点集: k=0,i=0,1,n 1. k=1,2;…,n,i=kk+1,,n 如果令P,(s)和Pb(s)分别是以控 制点序列8,和哈,唱确 定的Bezierl曲线,其中0≤s≤1,那 么就有:

设控制点序列P0,P1,…,Pn确定 的n次Bezier曲线是P(t),用如下递 归方式计算另一组点集:     = = + − − + − = = = ) , k 1,2, ,n , i k ,k 1 , ,n k 1 i 1 P k 1 i ( P 2 1 , k 0 , i 0,1, ,n i P k i P    如果令Pa (s)和Pb (s)分别是以控 制点序列 和 确 定的Bezier曲线,其中0≤s≤1,那 么就有: n n , ,P 1 ,P 0 0 P 1  0 n , ,P n 1 n ,P n n P − 

Pa(g>是cs(1-s-ip4, i=0 P(t)= s-2t,0etg Fp(s)c(1-si 1=0 s-2t-1 stal

             = −    = −  − =  − =    =  − =  − = t 1 2 1 s 2 t 1 , , n i 0 n i n P n i ( 1 s ) i s i n (s) C b P 2 1 s 2t,0 t , n i 0 i i P n i ( 1 s ) i s i n (s) C a P P(t)

己知四点Po;P1,P23P3, 确定了一 条三次Bezierl曲线P(t),可写出下式, P(e)Bo,3e)8+B1,3e9+2,3e)2+3,3)B B0.32t)8+1,32t)月+2,32t)+,32t)写 0≤t≤ 0.32t-1)+81,32t-1)号+2,32t-1)g+,32t-1) 2Sts1

己知四点P0,P1,P2,P3,确定了一 条三次Bezier曲线P(t),可写出下式,              − + − + − + −   + + + = = + + + t 1 2 1 , 0 3 (2t 1)P 3,3 B 1 3 (2t 1)P 2,3 B 2 3 (2t 1)P 1,3 B 3 3 (2t 1)P 0,3 B 2 1 0 t , 3 3 (2t)P 3,3 B 2 2 (2t)P 2,3 B 1 1 (2t)P 1,3 B 0 0 (2t)P 0,3 B 3 (t)P 3,3 B 2 (t)P 2,3 B 1 (t)P 1,3 B 0 (t)P 0,3 P(t) B

P→P8 P→ P2→P P3→9 分裂法中的递归计算

分裂法中的递归计算

P,2 P 分裂法的示意图

分裂法的示意图

可通过计算验证Bezier曲线由前 后两段构成。现以P的系数为例, 验证两端它的系数是相等的。 左端显然就是B.30)=(1-)3 先看右端。若0≤t≤§,这时就用 前半段的表达式,观察分裂计算图 注意到P中有1份Po,P中有2份, P中是份,P中是日份,因此 全部P的系数是:

可通过计算验证Bezier曲线由前 后两段构成。现以P0的系数为例, 验证两端它的系数是相等的。 左端显然就是 。 先看右端。若0≤t≤ ,这时就用 前半段的表达式,观察分裂计算图 注意到 中有1份P0, 中有 份, 中是 份, 中是 份,因此 全部P0的系数是: 3 ( ) (1 ) 0,3 B t = −t 2 0 1 P0 1 P1 2 1 2 P2 4 1 3 P3 8 1

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共29页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有