1 / 34

第 6 章 三维形体的表示

第 6 章 三维形体的表示.  第一节 曲面的表示 在设计和绘图中,几乎不可能没有曲  线。这些曲线一般分为两类:一类是  标准曲线,可以有标准的数学方程来  描述,如圆、椭圆、抛物线等;另一  类是拟合曲线,它们不能用标准的数  学方程来描述,只有先给出一些数据  点,然后用相应的数学方法来拟合这  些数据点成曲线。.  例如有实验曲线、等值线等,它们都  是通过做实验得到一些实验数据、或  经测量得到一系列离散数据点。依据 这些实际数据,我们希望能构造出一 条曲线, 使其完全通过或者比较贴近 这些数据点 。

emile
Download Presentation

第 6 章 三维形体的表示

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 三维形体的表示

  2.  第一节 曲面的表示 在设计和绘图中,几乎不可能没有曲  线。这些曲线一般分为两类:一类是  标准曲线,可以有标准的数学方程来  描述,如圆、椭圆、抛物线等;另一  类是拟合曲线,它们不能用标准的数  学方程来描述,只有先给出一些数据  点,然后用相应的数学方法来拟合这  些数据点成曲线。

  3.  例如有实验曲线、等值线等,它们都  是通过做实验得到一些实验数据、或  经测量得到一系列离散数据点。依据 这些实际数据,我们希望能构造出一 条曲线,使其完全通过或者比较贴近 这些数据点。  所以拟合曲线的问题就是介绍由离散  的数据点如何构成曲线的方法。

  4.  在计算机图形学这个领域里谈起的曲  线,一般都是指的后一种曲线。我们  要讨论的问题在于:已知一组数据点  (也称型值点),选用哪种数学方法 来加以拟合,相应的数学表达方式以 及如何绘制成曲线。  为了说清这些问题,还须先从标准曲  线开始。

  5.  在手工操作绘制曲线时,除了圆弧类  曲线可以直接借助于工具圆规来画出  外,其他的曲线一般都是先确定几个  点,然后借用曲线板分段绘出。其实  这也是用计算机来绘制曲线的基本原  理。   由于计算机图形输出设备的工作特  点,曲线一般是离散成直线画出的。  (见图)

  6.   另一个问题是参数法表示。(特别是  对于多值曲线,尤为重要)  例如看一个圆,它的标准方程是: x + y = r  可写成:y =  r- x  圆的参数方程表示为: x = r•cos(t) y = r•sin(t)  这两种表示方法,在绘图的时候是存  有明显的差别的。看图。 取等量的变量 得到均匀曲线 取等量的变量但 得不到均匀曲线

  7.  从以上的分析可得出绘制曲线的基本  方法有两条: * 离散化  这是由于硬件的条件   决定的,理想化的曲线是绘不出来   的。  * 参数法  这是由于曲线的质量   要求决定的。

  8.  下面我们以一个椭圆为例,来说明其  绘图过程和程序。  椭圆的参数方程为:(中心在原点) x=acos(t) y=bsin(t) (0t2)

  9.  当参数 t=ti 时: xi=a•cos(ti) yi=b•sin(ti)  当参数 t=ti+t时: x i+1=a•cos(ti +t ) y i+1=b•sin(ti +t )  当t相当小时,我们认为在椭圆上两  点之间的弧长就可以用该两点之间的  弦长来代替。 (见图) (xi+1,yi+1) (xi,yi)  t ti

  10.  这个程序说明了绘制曲线的一般方法,  用离散的直线段代替了曲线。致於直  线段长度的取值则决定于对曲线的精  度要求。显然,参变量的增量越小,  则离散直线段的长度越短,于是得到  的曲线精度越高。 (另外,还可以应用两角和的三角公式来简化   程序中的运算步骤)

  11.  二、抛物样条曲线  用抛物线作为基本曲线,通过一定的  数学方法,把一组离散的数据点用一  条复合的曲线光滑地连接起来。

  12.   1.过三点定义一条抛物线  设有不在一直线上的任意三点:P1,P2, P3。如何定义一条抛物线使其通过该  三点。 P2 P1 P3

  13.  抛物线参数表达式的一般形式为: P(t)=A1+A2t+A3t  (0t1)  目前,表达式中的三个系数A1、A2和 A3是未知的,所以只要确定该三个系  数的值,则抛物线就能唯一确定。

  14.  要求三个未知数,必须设三个独立的  条件。因抛物线过该三点,所以设: (1) 抛物线以 P1 为始点,即 t=0时,P(0)=P1; (2) 抛物线以 P3 为终点,即 t=1时,P(1)=P3; (3) 当 t=0.5 时,曲线过P2点,即 P(0.5)=P2。 

  15. P2 (t=0.5) P1 (t=0) P3 (t=1)  于是可列出三个独立的方程为: A1=P1(t=0) A1+A2+A3=P3(t=1) A1+0.5•A2+0.25•A3=P2(t=0.5)

  16.  解以上的联列方程组,可得: A1=P1 A2=4P2-P3-3P1 A3=2P1+2P3-4P2  故抛物线的参数表达式就可以唯一确  定为: P(t)=A1+A2t+A3t =P1+(4P2-P3-3P1)t+ (2P1+2P3-4P2) t   (0t1)

  17.  将上式先展开再整理后可得: P(t)=(2t-3t+1)P1+(4t-4t)P2+ (2t²-t)P3 (0t1)  式中的P是一个向量,在二维平面内  它包含两个分量(x, y)。  以上推导求出的算式,即为过不在一  直线上的三点:P1(x1,y1)、P2(x2,y2)  和P3(x3,y3)的抛物线的方程。这时根  据 t的取值,可以一一计算出曲线上的  点,从而绘出图形。

  18.  2.样条曲线表达式的推导  设有一离散点列Pi,(i=1,2,….,n)。我们  可以用上述方法每经过相邻的三点作  一条抛物线,则由n个点最多总共可以  作出(n-2)条抛物线。见图。 两种连接法

  19.  在第二种连接方式的(n-2)条抛物线 中,第i条抛物线的方程应为:  第i+1条抛物线的方程应为: (0ti,ti+11)

  20.  一般来说,两段曲线 Si和 Si+1在其  重叠区间是不可能完全自然重合的。 见图 Pi+1 (t)

  21.  但是,整个点列必须是只能用一条曲  线连接起来的。为了做到这一点,在  两条曲线的共同区间内,必须想法让  它们按照一定的规则结合组成一条曲  线。有效的办法就是 加权合成。  所谓的加权合成,就是用权函数来分 配原曲线在形成的合成曲线中各自所 占的比例。

  22. 设两个权函数分别为: f1(T)=1-T f2(T)=T (0T1)  则加权合成后的曲线为: Pi+1(t)=f1(T)Si(ti)+f2(T)Si+1(ti+1)  在同一个参数方程中,出现了三个参  变量:T、ti和ti+1。所以,为了使下面  的工作得以进行,首先要统一参变量。

  23.  对于 f(T):(0T1) Si(ti):(0.5ti1) Si+1(ti+1):(0ti+10.5) 我们设统一后的参变量为 t,并且使  其定义域为:0t0.5,则有: T=2t ti=0.5+t ti+1=t

  24.  于是合成曲线的以上表达式: Pi+1(t)=f1(T)Si(ti)+f2(T)Si+1(ti+1)  可以改写成以下形式: Pi+1(t)=(1-2t)Si(t+0.5)+2tSi+1(t)  其中: Si(t+0.5)=(2t-t)Pi+(1-4t)Pi+1+ (2t+t)Pi+2 Si+1(t)=(2t-3t+1)Pi+1+(4t-4t)Pi+2 +(2t-t)Pi+3 (0t0.5)

  25.  把新的Si和Si+1代入Pi+1(t),得到: Pi+1(t)=(-4t+4t-t)Pi+(12t-10t+1)Pi+1 +(-12t+8t+t)Pi+2+(4t-2t)Pi+3  式中:0t 0.5 i=1,2,3,……n-3  该式的实质是:每四个相邻的数据点  可以确定中间一段抛物样条曲线。 总共有n个点,只能确定(n-3)段分段曲线

  26.  3.抛物样条曲线的端点条件  根据以上得到的结果,每相邻四个点  可以确定一段样条曲线。以此类推,  我们可以得到后续的各段曲线。但全  部 n 个数据点,总共只能产生 n-3 个  曲线段。还有首、尾两端 P1P2和Pn-1Pn  之间的曲线无法确定。

  27. 首、尾两端曲线无法确定的原因在于  缺乏连续的相邻四点。所以解决问题  的方法也就是要想办法补足四点。即  在P1前补一点P0,在Pn后补一点Pn+1,  以使首、尾两端具备有相邻四点的条  件:P0、P1、P2、P3和Pn-2、Pn-1、Pn、 Pn+1。从而可产生P1P2曲线段和Pn-1Pn 曲线段。(见图)

  28. 如何添加这P0和Pn+1两个点,就是  要讨论的端点条件。 (1) COONS曲面(P1’和Pn’)  这种条件称为夹紧端。适用于新生成  的曲线要和已经存在的曲线或者直线  相连接,这样已有曲线或直线在连接  端的切矢就决定了新曲线在该点的切  矢。

  29.  二、贝塞尔曲面:P2’=P3-P1   即可得 P1=P3-P2’ P2 P2’ P1P3  以此可推出,如果P1’和Pn’已知,则 P1’=P2-P0  P0=P2-P1’ Pn’=Pn+1-Pn-1 Pn+1=Pn-1+Pn’

  30. 三B样条曲面  对曲线的两端没有约束条件,我们称  为自由端。这时让新补之点和原端点 重合,即 P0=P1 Pn+1=Pn

  31.  曲面片的连接  不管用什么方法由离散点生成曲线,  总希望所得到的曲线是连续光滑的。  用来评价曲线连续光滑程度的指标是  曲线在节点处的导数能满足于什么样  的条件。假如在节点处两曲线的一阶  导数相等,则我们称曲线为一阶连续  (C¹连续);而如果两曲线的二阶导  数相等,则我们称曲线为二阶连续( C²连续)。以此类推。

  32.  第2节实体的表示:  设它们的相邻两段为Pi+1(t)和Pi+2(t), Pi+1(t)=(-4t+4t-t)Pi+(12t-10t+1)Pi+1 +(-12t+8t+t)Pi+2+(4t-2t)Pi+3 Pi+2(t)=(-4t+4t-t)Pi+1+(12t-10t+1)Pi+2 +(-12t+8t+t)Pi+3+(4t-2t)Pi+4  见图 Pi+2(t) 节点处t=0 Pi+1(t) 节点处t=0.5

  33.  分别对Pi+1(t)和Pi+2(t)求导: P’i+1(t)=(-12t+8t-1)Pi+(36t-20t)Pi+1 +(-36t+16t+1)Pi+2+(12t-4t)Pi+3 =Pi+3-Pi+1 (当t=0.5时) 同样可求得: P’i+2(t)=Pi+3-Pi+1(当t=0时)  可见抛物样条曲线达成一阶连续。

  34.  八分树表示法实例

More Related