- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cadcam实验贝齐尔(Bezier)曲线曲面的生成方法
1贝齐尔曲面设计
1.1 贝齐尔曲面定义
设为个空间点列,则m×n次Bezier曲面定义为:
(式2-1)
其中 ,是Bernstein基函数。依次用线段连接点列中相邻两点所形成的空间网格,称之为特征网格。
Bezier曲面的矩阵表示式是:
(式2-2)
在一般实际应用中,n、m不大于4。
(1) 双线性Bezier曲面
当m=n=1时
u,w∈[0,1] (式2-3)
定义一张双线性Bezier曲面。
已知四个角点之后,则
(式2-4)
(2) 双二次Bezier曲面
当m=n=2时
(式2-5)
由此式定义的曲面,其边界曲线及参数坐标曲线均为抛物线。
(3) 双三次Bezier曲面
当m=n=3时
(式2-6)
(式2-7)
其矩阵表示为
(式2-8)
1.2 贝齐尔曲面性质
1.Bezier曲面特征网格的四个角点正好是Bezier曲面的四个角点,即
P(0,0)=P00 P(1,0)=PM0 P(0,1)=P0N P(1,1)=PMN
2. Bezier曲面特征网格最外一圈顶点定义Bezier曲面的四条边界;Bezier曲面边界的跨界切矢只能与定义该边界的顶点及相邻一排顶点有关,且
P00P10P01, P0nP1nP0,n-1, Pm0Pm-1,0Pm1,
分别是四个角点的切平面;跨界二阶导矢只与定义该边界的及相邻两排顶点有关。几何不变性、凸包性、对称性等性质可由Bezier曲线的相关性质容易推广得到。
图2-1 阴影三角形
1.3 贝齐尔曲面算法
Bezier曲线的递推(de Casteljau)算法,可以推广到Bezier曲面的情形。若给定Bezier曲面特征网格的控制顶点:和一对参数值(u,v),则:
式(2-9)
一条曲线可以表示成两条低一次曲线的组合,一张曲面可以表示成低一次的四张曲面的线性组合。
其中: 式(2-10)
或: 式(2-11)
上面给出了确定曲面上一点的两种方案。当按(1)式方案执行时,先以u参数值对控制网格u向的n+1个多边形执行曲线de Casteljau算法,m级递推后,得到沿v向由n+1个顶点构成的中间多边形。
再以v参数值对它执行曲线的de Casteljau算法,n级递推以后,得到一个,即所求曲面上的点。
也可以按(2) 式方案执行,先以v参数值对控制网格沿v向的m+1个多边形执行n级递推,得沿u向由m+1个顶点构成的中间多边形。再以u参数值对它执行n级递推,得所求点。
1.4 程序设计步骤
1.4.1 Bezier曲面的生成
Bezier曲面是基于Beizer曲线而定义的,有特征网格决定其大致形状,而特征网格是由控制点确定的。因而,绘制Bezier曲面的步骤与绘制Bezie曲面的步骤是一致的:
第一,定义控制点序列;
第二,定义一个二维评价器;
第三,激活二维评价器;
最后,创建网格。
定义一个二维评价器的函数为:glMap2d()或glMap2f()函数,glMap2d()函数的原型为:
Void glMap2d(GLenum target, GLdouble u1, GLdouble u2, Glint ustride,
Glint uorder, GLdouble v1, GLdouble v2, Glint vorder,
Glint uorder, const GLdouble * points);
其中,target参数表示评价器最后生成的坐标类别,它可以取表2-1中的一个常量:
常 量 含 义 GL_MAP2_VERTEX_3 用(x,y,z)描述一个控制点 GL_MAP2_VERTEX_4 用(x,y,z,w)描述一个控制点 GL_MAP2_INDEX 控制点代表一个颜色素引值 GL_MAP2_COLOR_4 控制点是RGBA颜色值 GL_MAP2_NORMAL 控制点是一个法线向量 GL_MAP2_TEXTURE_COORD_1 控制点是一个纹理坐标的s分量 GL_MAP2_TEXTURE_COORD_2 控制点是一个(s,t)纹理坐标 GL_MAP2_TEXTURE_COORD_3 控制点是一个(s,t,r)纹理坐标 GL_MAP2_T
文档评论(0)