可以确定一张三次Bezier曲面片

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

v
r (u ) ri (v* ) Bi ,3 (u )
i 0
3
将u,v向曲线方程合并得:
r (u, v) ri (v) Bi ,3 (u ) Bi ,3 (u )r (i, j ) B j ,3 (v)
i 0 i 0 j 0 3 3 3
v
u
3、Bézier曲面片的矩阵表达式
r01 r11 r21 r31 r01 r11 r21 r31
r02 r12 r22 r32 r02 r12 r22 r32
r03 B0,3 (v) B (v ) r13 1,3 r23 B2,3 (v) r33 B3,3 (v) r03 1 3 3 0 3 6 r13 r23 0 0 3 r33 0 0 0
实验七
一、实验目的、要求
曲面
1、检查学生对曲面生成算法理论的掌握程度; 2、培养学生结合曲面生成算法理论,编程实现Bézier曲面、或双三次均匀B 样条曲面、或NURBS曲面设计与绘制的能力; 3、培养学生根据相关理论,能借助计算机分析解决实际问题的能力。
二、Bezier曲面算法基础
基于Bezier曲线的讨论,我们可以方便地可以给出Bezier曲面的定义和性质, Bezier曲线的一些算法也可以很容易扩展到Bezier曲面的情况。 1.定义
1 1 v 3 3 v 2 1 v3
4、C0连续的Bézier组合曲面(位置连续)
用 Bé zier 曲面片组合曲面时 , 曲面拼合处位置 连续,要求: r1(1,v)=r2(0,v)
曲面片2 曲面片1
[1 1 1 1]AM1AT=[1 0 0 0]AM2AT
其中 λ (ν )是考虑法矢模长的不连续. 因为 r (0, v) r (1, v) 令
2 v 1 v
ru2 (0, v) 源自文库 (v)ru1 (1, v)
1 T
组合曲面所有等v线的梯度连续用矩阵表示为:
0
0 1 0 Ar A V (v) 3 2 1 1 Ar A V
2、 Bézier曲面片
给定空间16个位置点rij,可以确定一张三 次Bezier曲面片。 首先生成四条v向的三次Bezier曲线: v rij u
ri (v) rij B j ,3 (v)
j 0
3
i 0,1, 2,3
u
V*
根据“线动成面”的思想,按设定间 隔取 ,在四条v线上取点,沿u v* [0,1] 向生成三次Bezier曲线:
rij
v
r (u , v) ri (v) Bi ,3 (u ) Bi ,3 (u )r (i, j ) B j ,3 (v)
i 0 i 0 j 0 3 3 3
u
r00 r ( B0,3 (u ) B1,3 (u ) B2,3 (u ) B3,3 (u )) 10 r20 r30 0 0 0 r00 1 r 3 0 0 2 3 3 10 (1 u u u ) 3 6 3 0 r20 1 3 3 1 r30
1 3 1 1 1 1 3 1 0 3 6 3 0 0 3 3 0 r00 r 0 10 0 r20 1 r30 r01 r11 r21 r31 r02 r12 r22 r32 r03 r13 1 0 r23 r33
1
1
0
1 3 0 3 1
0 3 6 3
0 0 3 3
0 r00 r 0 10 0 r20 1 r30
r01 r11 r21 r31
r02 r12 r22 r32
r03 r13 r23 r33
2
2
r00 r 10 0 0 0 1 r20 r30
3. 编写图形程序:
在如上图所示的此新建的Project内,Workspace视窗下 选择FileView,然后点击ThirdP Files展开它,在Source Files中找 到FirstPView.cpp文件,在该文件中找到CView类下的列函数: void C ThirdP View::OnDraw(CDC* pDC) {
即:
r r
1 3i
2 0i
, 上图即为两张C0连续的Bézier曲面片.
5、C1连续的Bézier组合曲面(导矢连续)
曲面片2
曲面片1
若要得到跨界一阶导矢的连续性, 对于0≤v≤1,曲面片1在u=1的切平面 和曲面片2在u=0处的切平面重合,曲面 的法矢在跨界处连续,即:
ru2 (0, v) rv2 (0, v) (v)ru1 (1, v) rv1 (1, v)
r01
r02
r11 r12 r21 r22 r31 r32
r03 r13 1 0 0 0 r23 r33
r00 r 10 r20 r30
r01 r11 r21 r31
r02 r12 r22 r32
r03 r13 r23 r33
2. 选择欲创建的文档类型: 在Step1对话框中,选择Single Document或Multiple Documents 或Dialog based中任意一项均可,但后续操作不一样。(如选Multiple Documents)点击Finish(若还有其他需要则选Next>);
在如下New Project Information框内下点击OK。
2 T
2 1 1 (r12 r ) ( r r i 0i 3i 2i )
取λ (ν )=λ ,
表明跨界的四对棱边必须共线。
三.实验步骤:
1.建立工程: ①打开Visual C++; ②选择File→New→Projects→MFC AppWizard[exe],在Project Name内 输入工程名,并在Location选择程序文件存储路径,最后点击OK。
相关文档
最新文档