飞机机翼图设计

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

伯恩思坦多项式与Bezier曲线

一、引言

1971年法国雷诺汽车公司的工程师Bezier提出了一种新的参数曲线表示法。这种方法能方便地控制输入参数(控制点)以改变曲线的形状。被称为Bezier曲线,数学原理使用了伯恩思坦多项式。设f(x)是定义在[0,1]上的连续函数,称表达式

∑=

--

n

k

k

n

k

k

n

t

t

C

n

k

f

x

f

)

1(

)

/

(

)

(

右端为函数的伯恩思坦逼近多项式。

下面是函数)

sin(

)

(x

x

=的伯恩思坦多项式逼近实验程序

n=input('input n=');

x=[0:n]/n; f=sin(x*pi);

for i=1:n+1

y=f;t=x(i);

for k=n:-1:1

for j=1:k

y(j)=t*y(j)+(1-t)*y(j+1);

end

end

p(i)=y(1);

end

max(abs(f-p))

plot(x,f,'b',x,p,'o',x,p,'r')

下面两图分别是取不同点数的伯恩思坦多项式逼近。

n=10逼近n=20逼近

二、Bezier曲线

Bezier曲线的形状是通过一组多边折线(控制多边形)的各顶点P0,P1,…,P m所定义出来的。在多边折线的各顶点中,只有第一点P0和最后一点P m在曲线上,其余的点则用以定义曲线的阶次。

给定控制多边形顶点P0,P1,…,P m的坐标

(x0,y0),(x1,y1),……,(x m,y m)

曲线参数方程为

∑=

--

=

m

k

k

k

m

k

k

m

x

t

t

C

t

x

) 1(

)

(,∑

=

--

=

m

k

k

k

m

k

k

m

y

t

t

C

t

y

) 1(

) (

其中,k

m C 为组合数,其计算公式为

!

)(!!k m k m C k

m -=

在工程实际中,人们常用矢量函数的形式来表示平面曲线,若记

⎥⎦⎤

⎢⎣⎡=)()()(t y t x t P , ⎥⎦

⎤⎢⎣⎡=k k k

y x P (k = 0,1,…,m )

则有数学表达式

∑=--=

m

k k k

m k k m

P t t C

t P 0

)

1()(

作为特殊情形,下面分别给出 m = 1,2,3时的Bezier 曲线数学表达式。

1、一次Bezier 曲线是通过平面上两点P x y P x y 000111(,),(,)的直线段,其数学表达式为

10)1()(P t P t t P +-=,(10≤≤t )

2、 二次Bezier 曲线是由平面上三个点P x y P x y P x y 000111222(,),(,),(,)组成控制多边形,并由此确定的抛物线。数学表达式为 P t t P t t P t P t ()()()=-+-+≤≤121012

012

2

3、三次Bezier 曲线是由平面上四个点P x y P x y P x y P x y 000111222333(,),(,),(,),(,)组成控制多边形,并由此所确定的三次曲线。数学表达式为 P t t P t t P t t P t P t ()()()()=-+-+-+≤≤13131013

02

12

23

3

绘制曲线的算法常用加权平均法。这一算法的根据是组合数计算中常用的递推公式

1

11---+=k m k

m k

m C C C

以二次Bezier 曲线为例说明原理,由于

])1[(])1)[(1()1(2)1()(211022

102

tP P t t tP P t t P t P t t P t t P +-++--=+-+-= 由于 (1-t ) 和 t 都是介于 0 和 1 之间的数,所以认为是加权平均的权值。给定三个

点P 0(x 0,y 0)、P 1(x 1,y 1)、P 2(x 2,y 2)作为控制多边形顶点后,二次Bezier 曲线上对应于参数 t 的点P (t )的坐标可用如下方法计算 (1)取P P 01,点坐标的加权平均得P 01的坐标 1001)1(tx x t x +-=

1001)1(ty y t y +-=

(2)取P P 12,点的坐标的加权平均计算P 12的坐标 2112)1(tx x t x +-= 2112)1(ty y t y +-=

(3)取P P 0112,点的坐标的加权平均计算P (t )的坐标 1201)1()(tx x t t x +-= 1201)1()(ty y t t y +-=

曲线的矩阵表示算法

由于控制多边形各顶点的坐标可表示为矩阵形式的数据结构,借用矩阵的表示也可以实现算法。仍以计算二次Bezier 曲线上对应于t t t 01100011===,.,, 的11个点的坐标数据为例说明算法原理。由于二次Bezier 曲线的数学表达式可以写作矩阵形式

⎥⎥⎥⎦

⎢⎢⎢

⎣⎡--=21022

])1(2)1[()(P P P t t

t t t P 我们希望最后所得的曲线上11个点的坐标数据以11×2的矩阵形式给出,以第一列表

示X 坐标,以第二列表示Y 的坐标。由上式

⎥⎥⎥⎦

⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡22

1100210y x y x y x P P P 是一个3×2矩阵(它是算法的初始输入数据),而])1(2)1[(2

2

t t t t --应该是11×3矩阵。

三、应用

例1、飞机机翼图设计。利用贝塞尔曲线设计机翼剖面图,提取曲线数据,绘制机翼柱面图

MATLAB 程序:

p=[0 0;0.01 0.5;0.5 1;2 0]; %输入控制多边形顶点

图4-5

相关文档
最新文档