当前位置:文档之家› 贝齐尔曲线曲面生成方法

贝齐尔曲线曲面生成方法

贝齐尔曲线曲面生成方法
贝齐尔曲线曲面生成方法

实验三贝齐尔(Bezier)曲线曲面的生成方法

实验类型:综合型

一、目的与任务

目的:通过学生上机,了解贝齐尔(Bezier)曲线德卡斯特里奥的递推算法和贝齐尔(Bezier)曲线的几何作图法。

任务:熟悉线框建模、表面建模的基本方法。

二、内容、要求与安排方式

1、实验内容与要求:

贝齐尔(Bezier)曲线曲面的德卡斯特里奥的递推算法P(t)=∑Bi,n(t)Q(i)和几何作图法;

要求用熟悉的编程语言编制、调试和运行程序,并打印程序清单和输出结果。

2、实验安排方式:课外编写好程序清单,按自然班统一安排上机。

三、实验步骤

1、熟悉贝齐尔(Bezier)的贝齐尔基函数和贝齐尔的性质

2、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法;

3、贝齐尔(Bezier)曲线的几何作图法;

4、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法;

5、贝齐尔(Bezier)曲线的几何作图法。

6、对几何作图法绘制出图,对德卡斯特里奥的递推算法编出程序。

四、实验要求

1.在规定的时间内完成上机任务。

2.必须实验前进行复习和预习实验内容。

3.在熟悉命令过程中,注意相似命令在操作中的区别。

4.指定图形完成后,需经指导教师认可后,方可关闭计算机。

5.完成实验报告一份。

五、试验具体内容

1,Bezier 曲线的描述

在空间给定n + 1 个点P0 ,P1 ,P2 , ?,Pn ,称下列参数曲线为n 次的Bezier 曲线。

P(t) = 6n

t = 0

PiJ i ,n (t) , 0 ≤t ≤1

其中J i ,n (t) 是Bernstein 基函数,即

B i ,n (t) = n !/i !(n - i) *t(1-t);

i = 0 , ??,n

一般称折线P0P1P2 ?Pn 为曲线P(t) 的控制多边形;称点P0 ,P1 ,P2 , ?,Pn 为P(t) 的控制顶点。在空间曲线的情况下,曲线P(t) = (x(t) ,y(t) ,z (t) ) 和控制顶点Pi = (Xi ,Yi ,Zi) 的关系用分量写出即为:

X(t) = 6n

i = 0

XiJ i ,n (t)

Y(t) = 6

n

i = 0

YiJ i ,n (t)

Z(t) = 6n

i = 0

ZiJ i ,n (t)

当t 在区间[0 ,1 ] 上变动时,就产生了Bezier 曲线。若只考虑x和y ,就是平面上的Bezier 曲线。以三次Bezier 曲线为例,它可用矩阵形式表示如下:

P(t) = [t3 t2 t 1]

- 1 3 - 3 1

3 - 6 3 0

- 3 3 0 0

1 0 0 0

Q(0)

Q(1)

Q(2)

Q(3)

0 ≤t ≤1

2, Bezier 曲线的性质

Bezier 曲线具有以下性质:

当t = 0 时,P(0) = P0 ,故P0 决定曲线的起点,当t = 1 时,P(1) = Pn ,故Pn 决定曲线的终点。Bezier 曲线的起点、终点与相应的特征多边形的起点、终点重合。Bezier 曲线P(t) 在P0 点与边P0P1 相切,在Pn点与边Pn- 1Pn 相切。Bezier 曲线P(t) 位于其控制顶点P0 ,P1 ,P2 ,?,Pn 的凸包之内。

Bezier 曲线P(t) 具有几何不变性。

Bezier 曲线P(t) 具有变差缩减性。

3, Bezier曲线的de Casteljau算法

Paul de Casteljau 发现了一个Bezier 曲线非常有趣的特性,任何的Bezier 曲线都能很容易地分成两个同样阶次的Bezier 曲线。

图1 定比分割

如图1 所示,当P0 ,P2 固定,引入参数t ,令

P0P10

P10

P1

=

P1P11

P11

P2

=

P10

P20

P20

P11

的比值为t : (1 - t) ,即有:

P10= (1 - t) P0 + tP1P11= (1 - t) P1 + tP2P20= (1 - t) P10+ tP11t 从0变到1 ,第一、二式是两条一次Bezier 曲线。将一、二式代入第三式得:

P20= (1 - t) 2P0 + 2t (1 - t) P1 + t2P2

当t 从0 变到1 时,它表示了由P0 、P1 、P2 三个控制顶点形成的一条二次Bezier 曲线。并且表明:这个二次Bezier 曲线P02 可以定义为分别由前两个顶点(P0 ,P1) 和后两个顶点(P1 ,P2) 决定的一次Bezier 曲线的线性组合。依次类推,由四个控制点定义的三次Bezier 曲线P03 可被定义为分别由(P0 ,P1 ,P2) 和(P1 ,P2 ,P3) 确定的二条二次Bezier曲线的线性组合,由(n + 1) 个控制点Pi (i = 0 ,1 ,?,n) 定义的n 次Bezier 曲线P0n 可被定义为分别由前、后n 个控制点定义的两条(n - 1) 次Bezier曲线P0n- 1 与P1n- 1 的线性组合:

Pn0 = (1 - t) Pn- 10 + tPn- 11 t ∈[0 ,1 ]

由此得到Bezier 曲线的递推计算公式:

Pki =Pi k = 0

(1 - t)Pk- 1

i + tPk- 1

i+1 k = 1 ,2 , ?,n ,i = 0 ,1 , ?,n - k

这便是de Casteljau 算法。用这一递推公式,在给定参数下,求Bezier 曲线上一点P (t) 非常有效。上式中:Pi0 = Pi 是定义Bezier 曲线的控制点,P0n 即为曲线P(t) 上具有参数t 的点。这一算法可通过简单的几何作图来实现,给定参数t ∈[0 ,1 ] ,把定义域分成长度为t : (1 - t)的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是第一级递推生成的中间顶点Pi1 (i = 0 ,1 , ?,n - 1) ,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点Pi2 (i = 0 ,1 , ?,n - 2) 。重复进行下去,直到n 级递推得到一个中间顶点P0n 即为

所求曲线上的点P(t) 。当t = 1/ 2 时,从(2) 式可知,求Pik 只需进行加法和除2 运算,在计算机内除2 运算只需右移1位,计算速度快。所以通常取t = 1/ 2 最方便,

即每次求得Bezier

曲线的中点。

如图2 所示,有0 ,1 ,2 ,3 四个控制点,计算每条线的中点01 ,12 ,23 ,再得中点012 ,123 ,最后得到的中点0123 即在曲线上。四个控制点0 ,01 ,012 ,0123 又定义

了左边的曲线, 四个控

制点0123 ,123 ,23 ,3 又定义了右边的曲线,重复对左右的两条曲线再进行定比分

割,多次进

行定比分割后,就可以用直线段代替曲线段[3 ] 。

图2 de Casteljau 算法的几何作图(t = 1/ 2)

六、贝齐尔(Bezier)曲线德卡斯特里奥的递推算法程序清单

#include

#include

void main()

{

int i,j,k,f,u,d,n,m,w,g,h;

char c1;

i=0;j=1;k=1;w=1;g=1;h=1;f=1;u=1;d=1;

printf(" please input n number:\n");

scanf("%d",&n);

for(i=0;i<=n;i++)

{

{ for(g=1;g<=n;g++)

f=f*g;

for(h=1;h<=i;h++)

u=u*h;

for(w=1;w<=(n-i);w++)

d=d*w;

m=f/u/d;

printf("%d",m);

f=1;u=1;d=1;

}

for(j=1;j<=i;j++)

printf("t");

for(k=1;k<=(n-i);k++)

printf("(1-t)");

printf("Q(%d)",i);

if(i==n)break;else printf("+");

}

}

七、运行结果

八,MATLAB曲面生成程序:

[th,r]=meshgrid((0:5:360)*pi/180,0:.05:1); %在极坐标系下设置一个73×21的网格矩阵,

[X,Y]=pol2cart(th,r); %转化为笛卡儿坐标系%

Z=X+i.*Y;

F=abs((Z.^4-1).^(1/4));

surf(X,Y,F); %显示曲面的立体图形%

S=[X(:) Y(:) F(:)]; %把X、Y、F 3个矩阵中的数据存储到矩阵S中%

b=size(S);

S=[floor(1:b(1,1));S']';

save flcxq.ibl S –ascii

图像为:

《CAGD基础》

《CAGD基础》2009复习思考题 绪论 1. 形状信息的计算机表示作为CAGD学科的核心要解决什么问题?工业产品的形状数学描述需要满足哪些要求? 2. 在CAGD学科的发展历史中较长时期内要解决是哪两个重要问题? 曲线曲面的基本理论 1. 在CAGD中曲线曲面怎样分别用单参数和双参数的矢函数表示?与显函数及隐方程比较有什么优缺点? 2. 曲线曲面的参数化包含哪两方面意义?何谓曲线曲面的奇点与正则曲线曲面? 3. 当曲线在一点处的切矢存在及消失时,其切线方向分别怎样确定? 4. 引入曲线自身弧长为参数对切矢长度有何影响?为什么参数多项式曲线不能取自身弧长为参数? 5. 曲线在一点处的三个基本矢怎样确定?曲线论的基本公式表示一种什么关系? 6. 曲率与挠率各具有什么几何意义?从方向和模长看,曲线的曲率矢是一个怎样的矢量?在一般参数下用怎样的公式计算曲率与挠率? 7. 平面曲线为何要引入相对曲率?怎样用相对曲率符号判别平面曲线的弯曲方向? 8. 何谓曲面在一点处沿某个方向的法曲率?又何谓主曲率、主方向与高斯曲率?怎样由高斯曲率的符号判别曲面上点的类型? 9. 何谓可展曲面?有哪三种类型?直纹面可展需满足什么条件? 10. 在CAGD中曲线曲面广泛采用基表示,其中基函数与系数矢量分别对曲线曲面起什么作用? 11. 曲线曲面表示的几何不变性是指怎样的性质?哪种基表示具有不需引入特殊处理的几何不变性?在B样条曲线曲面程序作业中你将怎样应用几何不变性的? 12. 怎样保证正则曲线曲面经参数变换后仍是正则的?曲线曲面的参数化经这样的参数变换后有怎样的改变? 参数多项式曲线曲面 1. 何谓对曲线数据点的参数化?其均匀参数化、积累弦长参数化及其相应的规范参数化怎样确定?给出对它们的评价。 1

cad cam实验报告 贝齐尔(Bezier)曲线曲面的生成方法

CAD / CAM 技术实验报告

实验三贝齐尔(Bezier)曲线曲面的生成方法 实验类型:综合型 一、目的与任务 目的:通过学生上机,了解贝齐尔(Bezier)曲线德卡斯特里奥的递推算法和贝齐尔(Bezier)曲线的几何作图法。 任务:熟悉线框建模、表面建模的基本方法。 二、内容、要求与安排方式 1、实验内容与要求: 贝齐尔(Bezier)曲线曲面的德卡斯特里奥的递推算法P(t)=∑Bi,n(t)Q(i)和几何作图法; 要求用熟悉的编程语言编制、调试和运行程序,并打印程序清单和输出结果。 2、实验安排方式:课外编写好程序清单,按自然班统一安排上机。 三、实验步骤 1、熟悉贝齐尔(Bezier)的贝齐尔基函数和贝齐尔的性质 2、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法; 3、贝齐尔(Bezier)曲线的几何作图法; 4、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法; 5、贝齐尔(Bezier)曲线的几何作图法。 6、对几何作图法绘制出图,对德卡斯特里奥的递推算法编出程序。 四、实验要求 1.在规定的时间内完成上机任务。 2.必须实验前进行复习和预习实验内容。 3.在熟悉命令过程中,注意相似命令在操作中的区别。 4.指定图形完成后,需经指导教师认可后,方可关闭计算机。 5.完成实验报告一份。 五、试验具体内容 1,Bezier 曲线的描述 在空间给定n + 1 个点P0 ,P1 ,P2 , ?,Pn ,称下列参数曲线为n 次的Bezier 曲线。 P(t) = 6n

t = 0 PiJ i ,n (t) , 0 ≤t ≤1 其中J i ,n (t) 是Bernstein 基函数,即 B i ,n (t) = n !/i !(n - i) *t(1-t); i = 0 , ??,n 一般称折线P0P1P2 ?Pn 为曲线P(t) 的控制多边形;称点P0 ,P1 ,P2 , ?,Pn 为P(t) 的控制顶点。在空间曲线的情况下,曲线P(t) = (x(t) ,y(t) ,z (t) ) 和控制顶点Pi = (Xi ,Yi ,Zi) 的关系用分量写出即为: X(t) = 6n i = 0 XiJ i ,n (t) Y(t) = 6 n i = 0 YiJ i ,n (t) Z(t) = 6n i = 0 ZiJ i ,n (t) 当t 在区间[0 ,1 ] 上变动时,就产生了Bezier 曲线。若只考虑x和y ,就是平面上的Bezier 曲线。以三次Bezier 曲线为例,它可用矩阵形式表示如下: P(t) = [t3 t2 t 1] - 1 3 - 3 1 3 - 6 3 0 - 3 3 0 0 1 0 0 0 Q(0) Q(1) Q(2) Q(3) 0 ≤t ≤1 2, Bezier 曲线的性质 Bezier 曲线具有以下性质: 当t = 0 时,P(0) = P0 ,故P0 决定曲线的起点,当t = 1 时,P(1) = Pn ,故Pn 决定曲线的终点。Bezier 曲线的起点、终点与相应的特征多边形的起点、终点重合。Bezier 曲线P(t) 在P0 点与边P0P1 相切,在Pn点与边Pn- 1Pn 相切。Bezier 曲线P(t) 位于其控制顶点P0 ,P1 ,P2 ,?,Pn 的凸包之内。 Bezier 曲线P(t) 具有几何不变性。 Bezier 曲线P(t) 具有变差缩减性。 3, Bezier曲线的de Casteljau算法 Paul de Casteljau 发现了一个Bezier 曲线非常有趣的特性,任何的Bezier 曲线都能很容易地分成两个同样阶次的Bezier 曲线。

空间曲线与曲面

实验七空间曲线与曲面 实验目的 1.掌握空间直线、平面的画法。 2.了解常见的空间曲线与曲面的画法。 与本实验相关的理论 最基本的空间作图函数是Plot3 ,用于作所有二元函数的三维立方体图形,其格式是: Plot3D[f,{x,xmin,xmax},{y,ymin,ymax},可选项] 由于很多曲面和绝大多数曲线都不能用显函数的形式表示。Mathematica 还提供了Parametric Plot3D参数作图函数,其格式是:Parametric Plot3D[{x[u,v],y[u,v] ,z[u,v]} ,{u,umin,umax},{v,vmin,vmax},可选项] Mathematica作三维图形的机理是先在XOY坐标面给定区域内计算出一系列格点的值,再用矩形“小瓦片”拟合张在上面的曲面上。因而如果曲面的表面变化复杂,可通过设置更细的“瓦片”分割来改善。这时候可增加选项PlotPoint―>n 来说明分割数n。 实验步骤 一、画空间曲线 注意空间曲线的参数方程只有一个参变量,如果要画出螺旋线 x=10cost , y=10sint , z=2t 的图形,只要输入: Parametric Plot3D[{10cos[t],10sin[t],2t} ,{t,0,20}] 空间直线也类似地处理。 例1:求过A(3,5,-2),B(3,5,-2)的直线方程,并画图。 分析:空间直线方程可由点向式写出,再改成参数式

) 2(4)2(535313----=--=--z y x 化为参数式是:t x 23-=,t y 25-=,t z 62+-= 输入:Parametric Plot3D[{3-2t ,5-2t ,-2+6t} ,{t ,0,1}] 二、画空间曲面 例2:求过A (1,0,0),B (0,2,0),C (0,0,3),的平面方程,并画图。 分析:平面方程可由截距式写出,y x z 2 333--=。 输入:Parametric Plot3D[{3-3x-3y/2} ,{x ,-1,1},{y ,-1,1}] 例3:画出二元函数22),(y x y x f +=的图形。 输入:Parametric Plot3D[{x^2+y^2} ,{x ,-4,4},{y ,-4,4}] 例4:画出椭球心在原点,3=a ,4=b ,5=c 的椭球面。 输入:Parametric Plot3D[{3*Cos[u] Cos[v], 4*Sin[u] Cos[v],5*Sin[v]} ,{u ,0,2Pi},{v ,-Pi/2,Pi/2}] 例5:画出以x y cos =为准线,母线平行于Z 轴的柱面。 输入:Parametric Plot3D[{x,Cos[x],z} ,{x ,-4,4},{z ,-4,4}] 例6:画出由平面曲线z x cos 1+=绕Z 轴放转而成的旋转面。 输入:Parametric Plot3D[{(1+Cos[u])Cos[v] ,(1+Cos[u])Sin[v] ,u} ,{u ,-Pi ,Pi},{v ,0,2Pi}] 例7:画单叶双曲面。 输入:Parametric Plot3D[{Sec[u]Cos[v] ,Sec[u]Sin[v] ,Tan[u]} ,{u ,-Pi/2+0.5,Pi/2-0.5},{v ,0,2Pi}]

曲线与曲面

第四章曲线与曲面 Chapter 4 Curve and Curved Surface 建筑工程中常会遇到由曲线、曲面与平面围成的曲面体。如圆柱、壳体屋盖、隧道的拱顶以及常见的设备管道等等,它们的几何形状都是曲面体,如图4-1所示。在制图、施工和加工中应熟悉它们的特性。本章将介绍常用的一些曲线、曲面及其投影。 图4-1 悉尼歌剧院 第一节 曲线 [Curve] 一、曲线的投影特性[Characteristics of Curve Projection] (一) 曲线的形成 曲线可以看作是一个动点在连续运动中不断改变方向所形成的轨迹,如图4-2(a);也

可以是平面与曲面相交的交线,如图4-2(b );或两曲面相交形成的交线,如图4-2(c )。 (二) 曲线的分类 (1) 平面曲线——曲线上所有点都在同一平面上,如:圆、椭圆、抛物线、双曲线、 及任一曲面与平面的交线。 (2) 空间曲线——曲线上任意连续的四个点不在同一平面上,如:螺旋线或曲面与曲 面的交线。 (三) 曲线的投影特性 曲线上的点,其投影必落在该曲线的同面投影之上,见图4-2(a )中,曲线上M 点,其投影m 落在曲线的投影l 上。 曲线的投影一般仍为曲线。在对曲线L 进行投影时,通过曲线的光线形成一个光曲面,该光曲面与投影面的交线必为一曲线,见图4-3(a )。 若曲线是一平面曲线,且它所在平面为投影面垂直面时,则曲线在所垂直的投影上的投影为一直线,且位于平面的积聚投影上,见图4-3(b );其他二投影仍为曲线。 若曲线是一平面曲线,且它所在平面为投影面平行面时,则该曲线在所平行的投影面上的投影为曲线的实形,见图4-3(c ),其它二投影均为直线且平行于投影轴。 空间曲线,在三个投影面上的投影仍为曲线。 二、 圆的投影 [Projection of Circle ] 圆是平面曲线之一,其投影由于圆面与投影面相对位置不同有三种情况: (1) 圆面平行于某一投影面时,则圆在该投影面上的投影为圆(实形);另外两个投 影积聚为一直线段(长度等于圆的直径),且平行于投影轴。 (2) 圆面垂直于某一投影面时,则圆在该投影面上的投影积聚为一倾斜于投影轴的直 线段(长度等于圆的直径);另外两个投影为椭圆。 (3) 圆面倾斜于投影面时,投影为椭圆(椭圆长轴等于圆的直径)。 如图4-4(a ) 所示,圆属于正垂面 P ,因此,正面投影为一直线,水平投影为一椭圆。 其投影图作法如下: (1) 定OX 轴及圆心的V 、H 投影 o ′、o ,见图4-4 (b )。

用计算机绘制函数图像

用计算机绘制函数图像 利用计算机软件可以便捷、迅速地绘制各种函数图像。不同的计算机软件绘制函数图像的具体操作不尽相同,但都是基于我们熟悉的描点作图。即给子变量赋值,用计算法则算出相应的函数值,再由这些对应值生成一系列的点,最后连接这些点描绘出函数图像。下面以Excel 和《几何画板》为例,介绍用计算机软件作函数图像的方法。 1.用“Excel ”绘制函数3 y x =的图像 (1) 打开Excel ,在A 列输入自变量x 的值; (2) 把光标移到B 列,在编辑框输入计算法则“=POWER (A :A ,3)”,回车,在B 列 生成相应的函数值,如图1所示; (3) 选中数据区域A 、B 列,执行“插入→图表”命令,在“图表类型”中选择“XY 散点”,根据需要在“子图表类型”中选择其一。然后按照对话框中的提示,完成制图操作,就可得到如图2所示的函数3y x =的图像。 图1 图2 2.用《几何画板》绘制函数2(0)y bx b =≠的图像 (1) 打开几何画板,通过执行“构造/平行线”和“构造/线段”,生成平行于x 轴的 线段AB ,将A 固定于y 轴,B 为动点,选中B 点,执行“度量/横坐标”选项,画板上显示的点B 的横坐标B x 就是参数b 的值。 (2) 执行“图表/新建函数”,在对话框内输入函数表达式“*^2B x x ”,执行“图表 /绘制新函数”,即生成函数图像,如图3。

图3 图4 当你左右移动B 点的位置时,函数2(0)y bx b =≠就会“动”起来,如图4,如果有条件,请你绘制函数2(0)y ax bx c a =++≠的图像,并探究系数a 、b 、c 对函数图象的影响。

自由曲线曲面的基本原理(上)

自由曲线曲面的基本原理(上) 浙江黄岩华日(集团)公司梁建国 浙江大学单岩 1 前言 曲面造型是三维造型中的高级技术,也是逆向造型(三坐标点测绘)的基础。作为一个高水平的三维造型工程师,有必要了解一些自由曲线和曲面的基本常识,主要是因为:(1)可以帮助了解CAD/CAM软件中曲面造型功能选项的意义,以便正确选择使用;(2)可以帮助处理在曲面造型中遇到的一些问题。由于自由曲线和自由曲面涉及的较强的几何知识背景,因此一般造型人员往往无法了解其内在的原理,在使用软件中的曲(线)面造型功能时常常是知其然不知其所以然。从而难以有效提高技术水平。 针对这一问题,本文以直观形象的方式向读者介绍自由曲线(面)的基本原理,并在此基础上对CAD/CAM软件中若干曲面造型功能的使用作一简单说明,使读者初步体会到背景知识对造型技术的促进作用。 2 曲线(面)的参数化表达 一般情况下,我们表达曲线(面)的方式有以下三种: (1)显式表达 曲线的显式表达为y=f(x),其中x坐标为自变量,y坐标是x坐标的函数。曲面的显式表达为z=f(x,y)。在显式表达中,各个坐标之间的关系非常直观明了。如在曲线表达中,只要确定了自变量x,则y的值可立即得到。如图1所示的直线和正弦曲线的表达式就是显式的。

曲线的隐式表达为f(x,y)=0,曲面的隐式表达为f(x,y,z)=0。显然,这里各个坐标之间的关系并不十分直观。如在曲线的隐式表达中确定其中一个坐标(如x )的值并不一定能轻易地得到另外一个(如y )的值。图2所示的圆和椭圆曲线的表达式就是隐式的。 图2 (3) 参数化表达 曲线的参数表达为x=f(t);y=g(t)。曲面的参数表达为x=f(u,v);y=g(u,v);z=g(u,v)。这时各个坐标变量之间的关系更不明显了,它们是通过一个(t )或几个(u,v )中间变量来间接地确定其间的关系。这些中间变量就称为参数,它们的取值范围就叫参数域。 显然,所有的显式表达都可以转化为参数表达,如在图1所示的直线表达式中令x=t 则立即可有y=t 。于是完成了显式表达到参数化表达的转换。由此,我 y 2 x 2/a

贝齐尔曲线曲面生成方法

实验三贝齐尔(Bezier)曲线曲面的生成方法 实验类型:综合型 一、目的与任务 目的:通过学生上机,了解贝齐尔(Bezier)曲线德卡斯特里奥的递推算法和贝齐尔(Bezier)曲线的几何作图法。 任务:熟悉线框建模、表面建模的基本方法。 二、内容、要求与安排方式 1、实验内容与要求: 贝齐尔(Bezier)曲线曲面的德卡斯特里奥的递推算法P(t)=∑Bi,n(t)Q(i)和几何作图法; 要求用熟悉的编程语言编制、调试和运行程序,并打印程序清单和输出结果。 2、实验安排方式:课外编写好程序清单,按自然班统一安排上机。 三、实验步骤 1、熟悉贝齐尔(Bezier)的贝齐尔基函数和贝齐尔的性质 2、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法; 3、贝齐尔(Bezier)曲线的几何作图法; 4、贝齐尔(Bezier)曲线的德卡斯特里奥的递推算法; 5、贝齐尔(Bezier)曲线的几何作图法。 6、对几何作图法绘制出图,对德卡斯特里奥的递推算法编出程序。 四、实验要求 1.在规定的时间内完成上机任务。 2.必须实验前进行复习和预习实验内容。 3.在熟悉命令过程中,注意相似命令在操作中的区别。 4.指定图形完成后,需经指导教师认可后,方可关闭计算机。 5.完成实验报告一份。 五、试验具体内容 1,Bezier 曲线的描述 在空间给定n + 1 个点P0 ,P1 ,P2 , ?,Pn ,称下列参数曲线为n 次的Bezier 曲线。

P(t) = 6n t = 0 PiJ i ,n (t) , 0 ≤t ≤1 其中J i ,n (t) 是Bernstein 基函数,即 B i ,n (t) = n !/i !(n - i) *t(1-t); i = 0 , ??,n 一般称折线P0P1P2 ?Pn 为曲线P(t) 的控制多边形;称点P0 ,P1 ,P2 , ?,Pn 为P(t) 的控制顶点。在空间曲线的情况下,曲线P(t) = (x(t) ,y(t) ,z (t) ) 和控制顶点Pi = (Xi ,Yi ,Zi) 的关系用分量写出即为: X(t) = 6n i = 0 XiJ i ,n (t) Y(t) = 6 n i = 0 YiJ i ,n (t) Z(t) = 6n i = 0 ZiJ i ,n (t) 当t 在区间[0 ,1 ] 上变动时,就产生了Bezier 曲线。若只考虑x和y ,就是平面上的Bezier 曲线。以三次Bezier 曲线为例,它可用矩阵形式表示如下: P(t) = [t3 t2 t 1] - 1 3 - 3 1 3 - 6 3 0 - 3 3 0 0 1 0 0 0 Q(0) Q(1) Q(2) Q(3) 0 ≤t ≤1 2, Bezier 曲线的性质 Bezier 曲线具有以下性质: 当t = 0 时,P(0) = P0 ,故P0 决定曲线的起点,当t = 1 时,P(1) = Pn ,故Pn 决定曲线的终点。Bezier 曲线的起点、终点与相应的特征多边形的起点、终点重合。Bezier 曲线P(t) 在P0 点与边P0P1 相切,在Pn点与边Pn- 1Pn 相切。Bezier 曲线P(t) 位于其控制顶点P0 ,P1 ,P2 ,?,Pn 的凸包之内。 Bezier 曲线P(t) 具有几何不变性。 Bezier 曲线P(t) 具有变差缩减性。 3, Bezier曲线的de Casteljau算法 Paul de Casteljau 发现了一个Bezier 曲线非常有趣的特性,任何的Bezier 曲线都能很容易地分成两个同样阶次的Bezier 曲线。

用C++实现数学函数图形绘制(含源文件)

用VC++实现数学函数图形绘制 Use the VC++ to realize drawing figures of mathematic functions 摘要 Visual C++(以下简称VC++)是面向对象与可视化软件开发工具中比较成熟的一类。MFC是VC++中直接由Microsoft提供的类库,它集成了大量已定义好的类,我们可以根据需要,调用相应类,或根据需要自定义类。正是基于MFC 的这种特性,我们试图设计出具有封装性、独立性的功能模块------函数数据生成模块,函数曲线输出模块,模块之间的桥梁是由模板类CArray派生的CPoint 类数组充当的。函数数据生成模块用来实现对函数的设置并获得采样点,数组得到采样点数据并将其传递到输出模块中。从整体来看,实现了各程序模块的独立性,使得在函数模块中可任意添加、删除函数,可使用不同的DC和GDI,可实现不同的输出方式,整个工程在函数绘图功能上是无限扩展的。经过反复的调试和检验,我们实现了预期目标。我们的主要目的是尝试VC++在数学函数绘图方面的功能和应用。这是对VC++的探索,也是对数学函数绘图多样化的尝试。 关键字 数学函数图形绘制模板数组三次样条

【Abstract】 Visual C++ is one of the object oriented and visual software developer ,which is more mature than others . MFC is a class warehouse which is supplied by Microsoft ,and it contains a great deal of defined classes .we can transfer the corresponded class if necessary ,or give a fresh definition according our needs . Exactly based on MFC this kind of character, we try to design out the function mold which have the function to pack the class and be independent ------Mold for creating Function data, Mold for outputting the function curve, mold piece of born mold piece be sent by Cpoint Array rared by template CArray.The first mold is to make out sets for the function and get data we need which will be sent to the defined array,so now the array have the data that is to be got by the second mold.From whole project,we can see the independence of each mold,and exactly we may increase and decrease functions if necessary,we even can use different DC and GDI to realize the customed exportation method by which we can have a new view of the function curve. So, the function of the project can be extended freely.after repeatedly debugging and examining,we achieve our purpose.The most important thing we are trying is to find a way to connect the VC++ and the figures of mathmetic functions.This is not only a exploration to VC++,but also a attempt for realizing diversifing the mathmetic functions. 【Key words】 Mathematic functions drawingfigures template array tripline

计算机辅助几何设计大作业

Bezier曲线和B样条曲线的研究 高晶英 (内蒙古民族大学数学学院,内蒙古通辽028000) 摘要:本文简单的介绍了计算机辅助几何设计的历史背景以及计算机辅助几何中的Bezier 曲线和B样条曲线的概念. 关键词:计算机辅助几何设计;Bezier曲线;B样条曲线 THE RESEARCH OF BEZIER CURVE AND B-SPLINE CURVE Gao Jingying (Inner Mongolia University for the Nationalities College of Mathematics, Inner Mongolia Tongliao 028000 ) Abstract: This paper briefly describes the historic background of computer-aided geometric design and concept of Bezier curve and B-spine curve. Key words: Computer-aided geometric design; Bezier curve; B-spine curve 1 引言 计算机辅助几何设计(CAGD)主要研究以复杂方式自由变化的曲线曲面,即所谓的自由型曲线曲面,其中参数曲线曲面造型与形状调整是CAGD的一个重要内容。它起源于汽车制造、飞机、船舶的数学放样和外形设计,随着计算机的出现二产生并迅速发展起来的一门独立的新兴交叉学科。它与近代数学的许多分支学科,如应用数值分析、逼近论、微分几何、应用计算方法、代数几何学、高等代数、拓扑学、微分方程与偏微分方程、分形学、小波分析等,并与一些应用性较强的现代科技知识相互渗透,如计算几何、实体造型、图形图像学、数据结构、计算机程序语言、机械设计和加工制造等学科,是计算机辅助设计、计算机辅助制造等应用系统设计开发的理论基础。CAGD主要解决在计算机图像系统的环境下对几何外形信息的计算机表示、逼近以及用计算机控制、分析有关形状信息等问题。随着计算机技术的飞速发展,计算机辅助几何设计在近三十年来也得到了飞速发展。其研究工作开始于二十世纪六十年代,在几代学者的共同努力下,曲线曲面的表示和造型已形成了较为完备的几何理论体系。CAGD的造型方法和相关的理论已广泛地应用于其他技术领域,如游戏动画制作、计算机视觉、工业造型、建筑设计等。 曲线曲面造型理论是CAGD和CG(Computer Graphics:计算机图形)的重要的内容之一,即研究用计算机来表示、分析、显示和设计关于曲线曲面的相关问题自上世纪六十年代由Coon、Bezier等大师奠定其理论基础以来,已经取得了长足的发展。 工业产品的外形一般可分为两大类:一类是如平面、圆、圆锥面、柱面、球面、等解析曲面组成的外形,许多的机械零件都是归属于这一类,通过利用画法几何和机械制图就可以清楚地表示、传递它内存的形状信息。第二类通常是不能借助初等解析式来表示的曲面构成,而是以较为复杂的方式自由变化的曲线曲面,也就是通常意义下的自由形状的曲线、曲面构成,例如轮船、汽车、飞机等零部件外形。CAGD的主要研究对性是自由形状的曲线、曲面,CAGD的首要任务是建立曲线或曲面的数学模型,即利用直观有效的曲线曲面造型设计技术来对曲线曲面进行恰当的表示、清晰的显示和快速的处理。自由曲线曲面通常用参数方程来表示,相应的曲线或曲面被称为参数曲线或参数曲面。 2 Bezier曲线的研究 Bezier曲线是以“逼近”为基础, 先勾画折线多边形、然后用光滑的参数曲线去逼近这

函数的图像和函数的三种表示方法

函数的图象 课前预习 要点感知1对于一个函数,如果把自变量与函数的________分别作为点的横、纵坐标,在坐标平面内描出相应的点,这些点所组成的图形就是这个函数的________. 预习练习1-1下列各点在函数y=3x+2的图象上的是( ) A.(1,1) B.(-1,-1) C.(-1,1) D.(0,1) 1-2点A(1,m)在函数y=2x的图象上,则点A的坐标是________. 要点感知2由函数解析式画其图象的一般步骤是:①________;②________;③________.当堂训练 知识点1函数图象的意义 1.下列图形中的曲线不表示y是x的函数的是( ) 2.下图是我市某一天内的气温变化图,根据下图,下列说法中错误 的是( ) A.这一天中最高气温是24 ℃ B.这一天中最高气温与最低气温的差为16 ℃ C.这一天中2时至14时之间的气温在逐渐升高 D.这一天中只有14时至24时之间的气温在逐渐降低 3.甲、乙两人在一次百米赛跑中,路程s(米)与赛跑时间t(秒)的关 系如图所示,则下列说法正确的是( ) A.甲、乙两人的速度相同 B.甲先到达终点 C.乙用的时间短 D.乙比甲跑的路程多 4.(湖州中考)放学后,小明骑车回家,他经过的路程s(千米)与所用时间t(分 钟)的函数关系如图所示,则小明的骑车速度是________千米/分钟. 5.如图,表示甲骑电动自行车和乙驾驶汽车均行驶90 km的过程中,行驶 的路程y与经过的时间x之间的函数关系,请根据图象填空: (1)________出发的早,早了____小时,________先到达,先到____小时; (2)电动自行车的速度为______km/h,汽车的速度为______km/h. 知识点2画函数图象 6.画出函数y=2x-1的图象. (1)列表: x…-101… y…… (2)描点并连线; (3)判断点A(-3,-5),B(2,-3),C(3,5)是否在函数y=2x-1 的图象上 (4)若点P(m,9)在函数y=2x-1的图象上,求出m的值.

空间曲线地切线与空间曲面地切平面

第六节 空间曲线的切线与空间曲面的切平面 一、空间曲线的切线与法平面 设空间的曲线C 由参数方程的形式给出:?? ? ??===)()()(t z z t y y t x x ,),(βα∈t . 设),(,10βα∈t t ,)(),(),((000t z t y t x A 、))(),(),((111t z t y t x B 为曲线上两点,B A ,的连线AB 称为曲线C 的割线,当A B →时,若AB 趋于一条直线,则此直线称为曲线C 在点A 的切线. 如果)()()(t z z t y y t x x ===,,对于t 的导数都连续且不全为零(即空间的曲线C 为光滑曲线),则曲线在点A 切线是存在的.因为割线的方程为 ) ()() ()()()()()()(010010010t z t z t z z t y t y t y y t x t x t x x --=--=-- 也可以写为 010********)()() ()()()()()()(t t t z t z t z z t t t y t y t y y t t t x t x t x x ---=---=--- 当A B →时,0t t →,割线的方向向量的极限为{})(),(),(000t z t y t x ''',此即为切线的方向向量,所以切线方程为 ) () ()()()()(000000t z t z z t y t y y t x t x x '-='-='-. 过点)(),(),((000t z t y t x A 且与切线垂直的平面称为空间的曲线C 在点 )(),(),((000t z t y t x A 的法平面,法平面方程为 ))(())(())((00'00'00'=-+-+-z z t z y y t y x x t x 如果空间的曲线C 由方程为 )(),(x z z x y y == 且)(),(0' 0'x z x y 存在,则曲线在点)(),(,(000x z x y x A 的切线是 ) () ()()(100000x z x z z x y x y y x x '-= '-=- 法平面方程为

贝齐尔曲面绘制

目录 1 绪论 (1) 1.1贝齐尔曲面的介绍 (1) 1.2贝齐尔曲面的应用 (2) 2 贝齐尔曲面设计 (3) 2.1 贝齐尔曲面定义 (3) 2.2 贝齐尔曲面性质 (4) 2.3 贝齐尔曲面算法 (5) 2.4 程序设计步骤 (5) 2.4.1 Bezier曲面的生成 (5) 2.4.2 绘制网格曲面 (6) 2.4.3 绘制一个填充曲面 (8) 2.4.4 三次贝齐尔曲面 (9) 2.5 主程序 (10) 3 总结 (20) 参考文献 (21) 致谢 (22)

1 绪论 1.1贝齐尔曲面的介绍 到了70年代,法国雷诺汽车公司的工程师贝齐尔(Bezier)创造出一种适用于几何体外形设计的新的曲线表示法。这种方法的优越性在于:对于在平面上随手勾画出的一个多边形(称为特征多边形),只要把其顶点坐标输入计算机,经过不到一秒钟的计算,绘图机就会自动画出同这个多边形很相像、又十分光滑的一条曲线。这种方法被人们称为贝齐尔(Bezier)方法(以下统称为Bezier方法)。 贝齐尔曲线的形状是通过一组多边折线(也称为贝齐尔控制多边形)的各顶点惟一地定义出来的。在该多边折线的各顶点中,只有第一点和最后一点在曲线上,其余的顶点则用来定义曲线的形状。图1-1列举了一些Bezier多边折线和相应的Bezier曲线的形状关系。 图1-1 Bezier 曲线 曲线和曲面是计算机图形学中研究的重要内容之一,他们在实际工作中有着广泛的应用。例如,实验数据的曲线表示,设计、优化的曲面表示等。为了外形美观和物理性能最佳,汽车飞机等的外型设计十分重要。由于实际问题不断对曲线和曲面提出新的要求,近几十年来,曲线和曲面理论及其应用得到了很大的发展。1963年,波音飞机公司的Ferguson将曲线曲面表示成参数矢量形式,并用3次参数曲线来构造组合曲线,用4个角点的位置矢量及其两个方向的切向矢量来构造3次曲面。1964年,麻省理工学院的coons用封闭的曲线的4条边界定义一个曲面。同年,Schoenberg给出了参数样条曲线和曲面的形式。1971年,法国雪铁龙汽车公司的De Vasteljau 独立地研究出与Bezier 类似的方法。1972年,De Boor给出了B样条的标准计算方法。1974年,美国通用汽车公司的Gordon和Riesenfeld将B样条用于形状描述,提出了B样条曲线和B样条曲面。1975年,美国锡拉丘兹大学的Versprill在其博士论文中提出了有理B样条方法。19世纪80年代后期,美国的Piegl和Tiller将有理B样条发展成为非均匀有理B样条方法。非均匀有理B样条方法已成为当今自由曲线和曲面描述的通用方法,可以统一表示

数学实验教程实验6(空间曲线与曲面

实验6 空间曲线与曲面 实验目的 1.学会利用软件命令绘制空间曲线和曲面 2.通过绘制一些常见曲线、曲面去观察空间曲线和曲面的特点 3.绘制多个曲面所围成的区域以及投影区域。 实验准备 1.复习常见空间曲线的方程 2.复习常见空间曲面的方程 实验内容 1.绘制空间曲线 2.绘制空间曲面:直角坐标方程、参数方程 3.旋转曲面的生成 4.空间多个曲面的所围成的公共区域以及投影区域 软件命令 表6-1 Matlab 空间曲线及曲面绘图命令 实验示例 【例6.1】绘制空间曲线 绘制空间曲线sin ,cos ,x at t y at t z ct ===,在区间09t π≤≤上的图形,这是一条锥面螺旋线,取a=10,c=3。

【程序】: t=0:pi/30:9*pi; a=10; c=3; x=a*t.*sin(t); y=a*t.*cos(t); z=c*t; plot3(x,y,z,’mo ’) 【输出】:见图6-1。 图6-1 空间曲线的绘制 【例6.2】利用多种命令绘制空间曲面 绘制二元函数 22 2 2 sin x y z x y += +在区域:99,99D x y -≤≤-≤≤上的图形。 【程序】:参见Exm06Demo02.m 。 【输出】:见图6-2。 图 6-2 绘制空间曲面 【例6.3】绘制Mobius 带 Mobius 带的参数方程为 122122 cos sin cos ,[0,2],[,] sin u u x r u y r u r c v u v a b z v π=??==+∈∈??=?,, 其中,,a b c 为常数,绘制其图形。

matlab简介(解常微分方程绘制函数图像)

MATLAB简介 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。 一、基本功能 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 二、特点 1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 三、优势 1.友好的工作平台编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。 2.强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

excel生成函数曲线的教程

excel生成函数曲线的教程 excel生成函数曲线的教程生成函数曲线步骤1:在空白工作表的单元格“a1”和“b1”中分别输入“x”和“y”,在单元格“a2”和“a3”中,分别输入“1”和“3” 生成函数曲线步骤2:选定单元格“a2”和“a3”,用鼠标向下拖拉“填充柄”,各单元格按等差数列填充(见图8-58)。excel生成函数曲线的教程图58 生成函数曲线步骤3:单击选定单元格“b2”并输入公式:“=150/a2”(见图8-59)。 excel生成函数曲线的教程图59 生成函数曲线步骤4:单击回车键,单元格“b2”显示计算结果。 生成函数曲线步骤5:选定单元格“b2”,向下拖拉“填充柄”将单元格“b20”中的公式复制到各单元格中,并显示计算结果(见图8-60)。 excel生成函数曲线的教程图60 生成函数曲线步骤6:选定单元格区域“a1:b20”,单击菜单栏中“插入”→“图表”,弹出“图表向导-4步骤之1-图表类型”对话框(见图8-61)。 excel生成函数曲线的教程图61 生成函数曲线步骤7:单击“标准类型”标签,在“图表类型”栏中单击选定“折线图”,在“子图表类型”栏中选定一种类型(见图8-62)。 excel生成函数曲线的教程图62 生成函数曲线步骤8:单击“下一步”按钮,进入“图表向导-4步骤之2-图表源数据”对话

框,不改变默认设置。 生成函数曲线步骤9:单击“下一步”按钮,进入“图表向导-4步骤之3-图表选项”对话框,单击“标题”标签,在“图表标题”文本框中输入“x*y=150”,在“分类(x)轴”文本框中输入“x”,在“数值(y)轴”文本框中输入“y”(见图8-64)。 excel生成函数曲线的教程图64 生成函数曲线步骤10:单击“下一步”按钮,进入“图表向导-4步骤之4-图表位置”对话框,不改变默认设置。 生成函数曲线步骤11:单击“完成”按钮,在工作表中显示函数图表。修改“数据系列”和“绘图区”颜色后,函数曲线显示更清晰(见图8-65)。 excel生成函数曲线的教程图65 生成函数曲线步骤12:图表中2根曲线交点的值即为所求元素的质量值。 看了excel生成函数曲线的教程

曲面与空间曲面的归纳

曲面与空间曲线的总结

曲面与空间曲线一.曲面及其方程: 1.曲面方程的一般概念: 定义:若曲面上的点的坐标(x,y,z) 都满足方程F(x,y,z)=0, 而满足此方程的点都在曲面上,则称此方程为 该曲面的方程,而曲面称为此方程的‘图形’。 例1:求与A(2,3,1)和B(4,5,6)等距离的点的运动规迹。 解: 设M(x,y,z)为动点的坐标,动点应满足的条件是 |AM|=|BM|由距离公式得 此即所求点的规迹方程,为一平面方程。 2.坐标面及与坐标面平行的平面方程: ①坐标平面xOy 的方程:z=0 ②过点(a,b,c)且与xOy 面平行的平面方程:z=c 222222)6()5()4()1()3()2(-+-+-=-+-+-z y x z y x 整理得 631044=-++z y x

③坐标面yOz 、坐标面zOx 以及过(a,b,c)点且分别与之平行的平面方程:x=0; y=0; x=a; y=b 3. 球面方程: ①球面的标准方程:以M0(x0,y0,z0)为球心,R 为半径 的球面方程为 (x-x0)2+(y-y0)2+(z-z0)2=R2 ②球面的一般方程: x2+y2+z2+Ax+By+Cz+D=0 球面方程的特点:平方项系数相同;没有交叉项。 例2:求x2+y2+z2+2x-2y-2=0表示的曲面 解:整理得: (x+1)2+(y-1)2+z2=22 故此为一个球心在(-1,1,0),半径为2的球。 4.母线平行于坐标轴的柱面方程: 一般我们将动直线l 沿定曲线c 平行移动所形成的轨迹 称为柱面。其中直线l 称为柱面的母线,定曲线c 称为柱面 的准线。本章中我们只研究母线平行于坐标轴的柱面方程。 此时有以下结论: 若柱面的母线平行于z 轴,准线c 是xOy 面上的一条曲线,其方程为F(x,y)=0,则该柱面的方程为F(x,y)=0; 同理,G(x,z)=0,H(y,z)=0在空间中分别表示母线平行于y 轴和x 轴的柱面。 分析:母线平行于坐标轴的柱面的特点为:平行于某轴,则在其方程中无此坐标项。其几何意义为:无论z 取何值,只要满足F(x,y)=0,则总在柱面上。 几种常见柱面:x+y=a 平面; 2 22a y x =+圆柱面

相关主题
文本预览
相关文档 最新文档