当前位置:文档之家› 第09章-Maple的3D图形数据对象及其绘图

第09章-Maple的3D图形数据对象及其绘图

第九章3D图形数据对象及其绘图

图9-01~11 3D图形数据对象的类型

图9-01~03 GRID的数据结构及其对应图形

PLOT3D(GRID(1..3,1..4,[[4,3,5,2],[3,5,7,0],[2,8,4,6]]) ,COLOR(RGB,1,0,0), AXESSTYLE(FRAME));

图 1 第一种语句给出的GRID对象

plot3d(x*y,x=-3..3,y=-4..4,grid=[3,4],axes=box,orienta tion=[-12,64]);Q:=%:lprint(Q);

图 2 第二种形式的GRID对象通常出现在返回信息中

PLOT3D(GRID(-3...3.,-4...4.,Array(1..3,1..4,{(1,1) =12.,(1, 2) = 4.,(1, 3) =

-3.99999999999999912,(1,4)=-11.9999999999999982,(3,1) =

-12.,(3,2)=-4.,(3,3)=3.99999999999999912,(3,4)=11.9999999999999982},datatype=flo at[8],storage=rectangular,order=C_order)),ORIENTATION(-12.,64.),AXESLABELS(x ,y,""),AXESSTYLE(BOX))

若从返回的图形数据结构中取出Array,放入执行组中执行之后,返回一个三行四列矩阵样子的二维数组。其各个元素的数值,正是Array中各个等式右端的数值。该等式左端括号中的正整数是矩阵的行码和列码。元素值为0的相关Array等式省略不写。

Array(1 .. 3,1 .. 4,{(1, 1) = 12., (1, 2) = 4., (1, 3) = -3.99999999999999912, (1, 4) = -11.9999999999999982, (3, 1) = -12., (3, 2) = -4., (3, 3) = 3.99999999999999912, (3, 4) = 11.9999999999999982},datatype = float[8],storage =

rectangular,order = C_order);

同一个单片曲面图形,可以使用两种形式的数据结构表示它的数据对象,效果是相同的。

a:=-3:b:=3:c:=-4:d:=4:m:=3:n:=4:

GRID(a..b,c..d,[seq([seq((a+(b-a)*i/m)*(c+(d-c)*j/n),j =0..n)],i=0..m),COLOR(RGB,0,1,1)

]):dvxd1:=%:

PLOT3D(dvxd1,AXESLABELS(x,y,""),AXES(BOX),ORIENTATION(-12,64));

GRID(a..b,c..d,Array(1..m,1..n,{(1,1)=12.,(1,2)=4.,(1,

3)=-3.99999999999999912,(1,4)=-11.9999999999999982,(3,

1)=-12.,(3,2)=-4.,(3,3)=3.99999999999999912,(3,4)=11.9999999999999982},datatype=float[8],storage=rectangular ,order=C_order),COLOR(RGB,1,1,0)

):dvxd2:=%:

PLOT3D(dvxd2,AXESLABELS(x,y,""),AXES(BOX),ORIENTATION(

-12,64));

图 3 两种形式数据结构表示的数据对象效果相同(注意两图分割份数有差别)

图9-04~06 MESH 的数据结构及其对应图形

PLOT3D(MESH([[[1,2,1],[2,3,1]],[[4,3,2],[3,2,4]],[[5,4,3],[3,0,5]]]));

lprint(%);

éëêêêêêùû

úúúúú12. 4.-3.99999999999999912-11.99999999999999820.0.0.0.-12.-4. 3.9999999999999991211.9999999999999982

图 4 MESH 的对象信息必需是list of lists of lists

PLOT3D(MESH([[[1, 2, 1], [2, 3, 1]], [[4, 3, 2], [3, 2, 4]], [[5, 4, 3], [3, 0, 5]]]))

后一种书写格式,往往出现在参数曲面图形数据O/S 的返回信息中。

plot3d([x,y,x*y],x=0..6,y=0..6,grid=[3,4]);lprint(%);

图 5 后一种书写格式往往出现返回信息中

PLOT3D(MESH(Array(1 .. 3,1 .. 4,1 .. 3,{(2, 1, 1) = 3., (2, 2, 1) = 3., (2, 3, 1) = 3., (2, 4,

1) = 3., (1, 2, 2) = 2., (1, 3, 2) = 4., (1, 4, 2) = 6., (2, 2, 3) = 6., (2, 3, 2) = 4., (2, 3, 3) =

12., (2, 4, 2) = 6., (2, 4, 3) = 18., (3, 1, 1) = 6., (3, 2, 1) = 6., (3, 2, 2) = 2., (3, 2, 3) = 12., (3, 3, 1) = 6., (3, 3, 2) = 4., (3, 3, 3) = 24., (3, 4, 1) = 6., (3, 4, 2) = 6., (3, 4, 3) = 36., (2, 2,

2) = 2.},datatype = float[8],storage = rectangular,order = C_order)))

也可以从返回的图形数据结构中取出Array ,放入执行组中执行。但,此时再无法像GRID 中的Array 那样返回矩阵样子的数组了,因为这时的Array 是一个三维数组(3D 的Array )。

Array(1 .. 3,1 .. 4,1 .. 3,{(2, 1, 1) = 3., (2, 2, 1) =

3., (2, 3, 1) = 3., (2, 4, 1) = 3., (1, 2, 2) = 2., (1, 3, 2) =

4., (1, 4, 2) = 6., (2, 2, 3) = 6., (2, 3, 2) =

4., (2, 3, 3) = 12., (2, 4, 2) = 6., (2, 4, 3) = 18., (3, 1, 1) = 6., (3, 2, 1) = 6., (3, 2, 2) = 2., (3, 2, 3) =

12., (3, 3, 1) = 6., (3, 3, 2) = 4., (3, 3, 3) = 24., (3, 4, 1) = 6., (3, 4, 2) = 6., (3, 4, 3) = 36., (2, 2, 2) =

2.},datatype = float[8],storage = rectangular,order = C_order);:QW:=%:

éëêêêêêùû

úúúúú 1..3 x 1..4 x 1..3 3-D Array Data Type: float[8] Storage: rectangular Order: C_order

在早期版本中没有Array型的数据,曾有个类似的多维数组hfarray。

MESH(hfarray(1..3,1..2,1..3,[[[0,0.4,0],[0,0,1.6]],[[0

.5,0.4,0],[0.8,0.4,1.2]],[[1,1.2,0],[1.1,1.6,2]]])): DX:=%:lprint(DX);

MESH(Array(1 .. 3,1 .. 2,1 .. 3,{(2, 2, 1) = .800000000000000042, (2, 2, 2)

= .400000000000000022, (3, 2, 1) = 1.10000000000000008, (3, 2, 2) =

1.60000000000000008, (3, 2, 3) =

2., (1, 1, 2) = .400000000000000022, (1, 2, 3) =

1.60000000000000008, (2, 1, 1) = .500000000000000000, (2, 1, 2)

= .400000000000000022, (2, 2, 3) = 1.19999999999999994, (3, 1, 1) = 1., (3, 1, 2) =

1.19999999999999994},datatype = float[8],storage = rectangular,order = C_order)) MESH(Array(1..3,1..2,1..3,{(2,2,1)= .800000000000000042, (2,2,2)=.400000000000000022,(3,2,1)=1.1000000000000000 8,(3,2,2)=1.60000000000000008,(3,2,3)=

2.,(1,1,2)=.4000 00000000000022,(1,2,3)=1.60000000000000008,(2,1,1)=.50 0000000000000000,(2,1,2)=.400000000000000022,(2,2,3)=1

.19999999999999994,(3,1,1)=1.,(3,1,2)=1.19999999999999 994},datatype=float[8],storage=rectangular,order=C_ord er)):DX1:=%:

PLOT3D(DX1,COLOR(RGB,0,1,1),ORIENTATION(82,67),AXES(FR AME),THICKNESS(3));

图 6 DX和DX1的显示效果是相同的

图9-07~11 ISOSURFACE的数据结构及其对应图形

先来察看一个隐函数曲面图形的数据O/S。

with(plots):

implicitplot3d(x*y*z=1,x=-3..3,y=-3..3,z=-3..3,grid=[1 3,13,13],axes=NORMAL,orientation=[124,77]);Q1:=%: implicitplot3d(x*y*z=1,x=-3..3,y=-3..3,z=-3..3,grid=[3

,3,4],axes=NORMAL,orientation=[124,77]);Q2:=%:

implicitplot3d(x*y*z=1,x=0..3,y=0..3,z=0..3,grid=[2,2, 2],axes=box);Q3:=%:;

图7 在implicitplot3d返回数据中出现第一书写格式的ISOSURFACE对象

lprint(Q3):

PLOT3D(ISOSURFACE(Array(1 .. 2,1 .. 2,1 .. 2,1 .. 4,{(2, 1, 2, 4) = -1., (2, 1, 1, 4) = -1., (1, 2, 2, 4) = -1., (1, 2, 1, 4) = -1., (2, 2, 1, 4) = -1., (2, 1, 1, 1) = 3., (2, 1, 2, 1) = 3., (2, 1, 2, 3) = 3., (2, 2, 1, 1) = 3., (2, 2, 1, 2) = 3., (1, 1, 1, 4) = -1., (1, 1, 2, 3) = 3., (1, 1, 2, 4) = -1., (1, 2, 1, 2) = 3., (1, 2, 2, 2) = 3., (1, 2, 2, 3) = 3., (2, 2, 2, 1) = 3., (2, 2, 2, 2) = 3., (2, 2, 2, 3) = 3., (2, 2, 2, 4) = 26.},datatype = float[8],storage = rectangular,order =

C_order)),AXESSTYLE(BOX),AXESLABELS(x,y,""))

从返回中取出数据对象,赋名,经过编辑。输入执行组中,可以得到显示图形。with(plots):

Q:=ISOSURFACE(Array(1 .. 2,1 .. 2,1 .. 2,1 .. 4, {(1, 1, 1, 4) = -1., (1, 1, 2, 4) = -1.,

(1, 2, 1, 4) = -1., (1, 2, 2, 4) = -1.,

(2, 1, 1, 4) = -1., (2, 1, 2, 4) = -1.,

(2, 2, 1, 4) = -1., (1, 1, 2, 3) = 3.,

(1, 2, 1, 2) = 3., (1, 2, 2, 2) = 3.,

(1, 2, 2, 3) = 3., (2, 1, 1, 1) = 3.,

(2, 1, 2, 1) = 3., (2, 1, 2, 3) = 3.,

(2, 2, 1, 1) = 3., (2, 2, 1, 2) = 3.,

(2, 2, 2, 1) = 3., (2, 2, 2, 2) = 3.,

(2, 2, 2, 3) = 3., (2, 2, 2, 4) = 26.},

datatype = float[8],storage = rectangular,

order = C_order),COLOUR(RGB,0,1,1)):

display3d(Q);

图8 用返回数据对象显示出来的图形

若将其内核Array取出赋名为AA,可得4维数组的返回信息表。

Array(1 .. 2,1 .. 2,1 .. 2,1 .. 4,

{(1, 1, 1, 4) = -1., (1, 1, 2, 4) = -1.,

(1, 2, 1, 4) = -1., (1, 2, 2, 4) = -1.,

(2, 1, 1, 4) = -1., (2, 1, 2, 4) = -1.,

(2, 2, 1, 4) = -1., (1, 1, 2, 3) = 3.,

(1, 2, 1, 2) = 3., (1, 2, 2, 2) = 3.,

(1, 2, 2, 3) = 3., (2, 1, 1, 1) = 3.,

(2, 1, 2, 1) = 3., (2, 1, 2, 3) = 3.,

(2, 2, 1, 1) = 3., (2, 2, 1, 2) = 3.,

(2, 2, 2, 1) = 3., (2, 2, 2, 2) = 3.,

(2, 2, 2, 3) = 3., (2, 2, 2, 4) = 26.},

datatype = float[8],storage = rectangular,

order = C_order);:AA:=%:

éëêêêêêùû

úúúúú 1..2 x 1..2 x 1..2 x 1..4 4-D Array Data T ype: float[8] Storage: rectangular Order: C_order PLOT3D(ISOSURFACE(AA));

图 9 从返回数据取出内核Array 显示的图形

使用第二、三种书写格式,手工输入一个4维数组,也能用ISOSURFACE 对象绘图。

[[[[-1,-1,1,.5],[1,1,1,0]],[[1,-1,1,0],[-1,1,1,1]]],

[[[-2,-2,2,1],[2,2,2,0]],[[2,-2,2,0],[-2,2,2,1]]],

[[[-1,-1,3,1],[1,1,3,0]],[[1,-1,3,0],[-1,1,3,1]]]]:; AA6:=%:

PLOT3D(ISOSURFACE(AA6),THICKNESS(3),AXES(BOX),ORIENTAT ION(108,77),COLOR(RGB,1,1,0));

lprint(%);

PLOT3D(ISOSURFACE(Array(1..3,1..2,1..2,1..4,AA6,dataty pe=float[8],storage=rectangular,order=C_order)),THICKN ESS(3),AXES(BOX),ORIENTATION(108,77),COLOR(RGB,0,1,1));lprint(%);

图10 手工输入AA6,再用两种格式做成ISOSURFACE对象的绘图虽然两者的图形一样,但返回数据有所不同。

前者输入给ISOSURFACE的是个单纯的list of lists of lists,返回的是同型数据。后者,输入的是方括号型的Array,返回的却是等式型的Array。可以将这等式型Array用于绘图,得到与前面两种书写格式同样效果的图形。

PLOT3D(ISOSURFACE(Array(1 .. 3,1 .. 2,1 .. 2,1 .. 4, {(1, 1, 1, 1) = -1., (1, 1, 1, 2) = -1.,

(1, 1, 1, 3) = 1., (1, 1, 1, 4) = .500000000000000000, (1, 1, 2, 1) = 1., (1, 1, 2, 2) = 1., (1, 1, 2, 3) = 1., (1, 2, 1, 1) = 1., (1, 2, 1, 2) = -1., (1, 2, 1, 3) = 1., (1, 2, 2, 1) = -1., (1, 2, 2, 2) = 1., (1, 2, 2, 3) = 1., (1, 2, 2, 4) = 1., (2, 1, 1, 1) = -2., (2, 1, 1, 2) = -2., (2, 1, 1, 3) = 2., (2, 1, 1, 4) = 1., (2, 1, 2, 1) = 2., (2, 1, 2, 2) = 2., (2, 1, 2, 3) = 2., (2, 2, 1, 1) = 2., (2, 2, 1, 2) = -2., (2, 2, 1, 3) = 2., (2, 2, 2, 1) = -2., (2, 2, 2, 2) = 2., (2, 2, 2, 3) = 2., (2, 2, 2, 4) = 1., (3, 1, 1, 1) = -1., (3, 1, 1, 2) = -1., (3, 1, 1, 3) = 3., (3, 1, 1, 4) = 1., (3, 1, 2, 1) = 1., (3, 1, 2, 2) = 1., (3, 1, 2, 3) = 3., (3, 2, 1, 1) = 1., (3, 2, 1, 2) = -1., (3, 2, 1, 3) = 3., (3, 2, 2, 1) = -1., (3, 2, 2, 2) = 1., (3, 2, 2, 3) = 3., (3, 2, 2, 4) = 1.},

datatype = float[8],storage = rectangular,

order=C_order)),THICKNESS(3),AXES(BOX),

ORIENTATION(108,77),COLOR(RGB,0,1,0));

4维数组也可使用表达式

[seq([seq([seq([x(i),y(j),z(k),F(i,j,k)],j=0..N)],i=0..M)],k=0..R)]:

来定义。可以放入第二、第三两种格式中去。

M:=6:N:=6:R:=6:a:=-3:b:=3:c:=-3:d:=3:f:=-2.5:g:=2.5: x:=i->a+(b-a)*i/M:

y:=j->c+(d-c)*j/N:

z:=k->f+(g-f)*k/R:

F:=(i,j,k)->z(k)-x(i)*y(j)/4:

[seq([seq([seq([x(i),y(j),z(k),F(i,j,k)],j=0..N)],i=0. .M)],k=0..R)]:Q:=%:evalf(Q):QQ:=%:

PLOT3D(ISOSURFACE(QQ),AXES(FRAME),ORIENTATION(-25,85)) ;

PLOT3D(ISOSURFACE(Array(1..M+1,1..N+1,1..R+1,1..4,QQ,d atatype=float[8],storage=rectangular,order=C_order)),A XES(FRAME),ORIENTATION(-25,85));

图11 方括号4维数组与方括号4维Array做成的ISOSURFACE图形相同下面再用函数implicitplot3d绘制隐函数图形。请与图 11图形相对比。

plots[implicitplot3d](z-x*y/4,x=-3..3,y=-3..3,z=-2.5..

2.5,axes=frame,orientation=[-25,85],grid=[7,7,13],view =[-

3..3,-3..3,-2.5..2.5]);

在Q中,改变被绘制曲面的隐函数表达式和相关变量的变化范围,就可得到另外一些ISOSURFACE图形数据对象(以及图形数据结构)。

M:=6:N:=6:R:=6:a:=-4:b:=4:c:=-4:d:=4:f:=0:g:=4:

x:=i->a+(b-a)*i/M:

y:=j->c+(d-c)*j/N:

z:=k->f+(g-f)*k/R:

F:=(i,j,k)->z(k)-sqrt(x(i)^2+y(j)^2):

[seq([seq([seq([x(i),y(j),z(k),F(i,j,k)],j=0..N)],i=0. .M)],k=0..R)]:Q:=%:

evalf(Q):QQ:=%:

PLOT3D(ISOSURFACE(QQ),AXES(FRAME),ORIENTATION(35,65));

M:=18:N:=18:R:=6:a:=-3:b:=3:c:=-3:d:=3:f:=-2:g:=6:

x:=i->a+(b-a)*i/M:

y:=j->c+(d-c)*j/N:

z:=k->f+(g-f)*k/R:

F:=(i,j,k)->2+z(k)-x(i)^2-y(j)^2:

[seq([seq([seq([x(i),y(j),z(k),F(i,j,k)],j=0..N)],i=0. .M)],k=0..R)]:Q:=%:

evalf(Q):QQ:=%:

PLOT3D(ISOSURFACE(QQ),AXES(FRAME),ORIENTATION(30,70));

图9-12~24 生成通用图形对象的plottools包函数

1 plottools[point]

如果录入如下一些语句:

with(plottools):with(plots):

point([0,0,1],color=black,symbol=DIAMOND,symbolsize=55 ,gridstyle=triangular,axes=frame,orientation=[12,56],p rojection=0.5,labels=[u,v,w],coords=cylindrical,title= 'TUXING',scaling=contraiaed,filled=true,cymbol=BOX);: qq:=%:

在6-7版本中可以得到图形数据对象的返回信息。其中许多设置不起作用。

COLOUR,,,

RGB000()

SYMBOL DIAMOND

0.0.1.()

,,

POINTS,,

[]

()

但是还能得到基本图形。

PLOT3D(qq,AXES(BOX));

图12 有许多设置选项不能进入数据对象的局部信息

可是,在9.0版中并不返回图形数据对象,而出现以下一些报错信息。Warning, the following options are not used by plottools: [axes = frame, labels = [u, v, w], title = TUXING, scaling = contraiaed]

Error, (in plot/options2d) unknown or bad argument: orientation = [12, 56]

本对象生成函数,只能接受一个点的坐标。多于一点时,可能写出表达式,但不能正常显示图形。可能是无效无碍,也可能报错。

g:=point([0,0,1],[1,3,2],[3,4,5],color=black);

g1:=point([[0,0,1],[1,3,2]],color=red);

g2:=point({[0,0,1],[1,3,2]},color=blue);

display(g,symbol=cross,symbolsize=55,axes=frame); display(g1,symbol=cross,symbolsize=55,axes=frame); display(g2,symbol=cross,symbolsize=55,axes=frame);

若想用本函数绘制多点图形,只好借助组合函数:

with(plottools):with(plots):

l := point([0,0,1], color=black);:

ll := point([0,0,0], color=blue);:

display(ll,l,axes=FRAME,symbol=DIAMOND,symbolsize=55,o rientation=[-12,35]);

在这种组合图形中不同的点当然不能连线!!

with(plottools):with(plots):

k:=point([1,1,2],color=blue):

l:=point([0,0,1], color=black):

display({k,l},symbolsize=55,symbol=circle,axes=boxed,v iew=[-1/2..1.5,-1/2..1.5,-.5..2.5]);

display({k,l},symbolsize=55,symbol=circle,style=LINE,a xes=frame,view=[-1/2..1.5,-1/2..1.5,-.5..2.5]);

不可连线

2 plottools[line]

with(plottools): with(plots):

line([0,0,0],[1,1,1],[2,6,3],color=red,linestyle=1,thi ckness=3):l:=%:

display(l,axes=frame,orientation=[25,66]);

图13 多余的端点无用也无碍

CURVES([[0., 0., 0.], [1., 1., 1.]],THICKNESS(3),LINESTYLE(1), COLOUR(RGB,1.00000000,0.,0.))

可以在对象局部信息中设置选项使得联线取消,成为两个孤点。

with(plottools):with(plots):

line([0,0,0],[1,1,1],[2,6,3],color=red,style=POINT,sym bol=circle,symbolsize=55):l:=%:

display(l,symbol=cross,color=blue,axes=frame,orientati on=[25,66],symbolsize=15);

lprint(l);

CURVES([[0., 0., 0.], [1., 1., 1.]],STYLE(POINT),SYMBOL(CIRCLE,55),COLOUR (RGB,1.00000000,0.,0.))

可使联线取消成为孤点对,点的设置能进入数据对象

with(plottools):

k:=line([1,2,1],[2,2,2],color=blue,linestyle=3,thickne ss=4);

l:=line([0,0,0],[2,1,2],color=red,linestyle=4,thicknes s=3);

plots[display](l,k,axes=frame,orientation=[25,66]);

两个 line 对象的组合图形,各自使用不同的设置项

3 plottools[curve]

with(plottools):with(plots):

l:=curve([[0,0,0],[1,1,1],[1,1,0],[0,2,0]], color=green, thickness=3);

display(l,axes=box);

图 14 本对象的基本格式

可以在对象内部设置style=POINT 使得折线成为节点的集合。

k:=curve([[0,0,0],[1,1,1],[1,1,0],[0,2,0]],style=POINT ,color=red,symbol=circle,symbolsize=25);

display(k,axes=box);

k CURVES [],,,[],,0.0.0.[],,1.1.1.[],,1.1.0.[],,0.2.0.()ST YLE POINT ,,

( := ()SYMBOL ,CIRCLE 25()COLOUR ,,,RGB 1.000000000.0.,)

可以设为节点的集合

4 plottools[polygon]

with(plottools):with(plots):

polygon([[0,0,0],[1,1,1],[1,1,0],[0,3,2]],thickness=3, color=blue);l:=%:

display(l);

图15 可以在对象内部设置边框的宽度和填充颜色。默认的边框颜色是黑色。

with(plottools):with(plots):

polygon([[0,0,0],[1,1,1],[1,1,0],[0,3,2]],

thickness=3,color=blue,style=wireframe);l:=:

display(l);

可用style=wireframe设置成不填充,此时color确定边框的颜色

with(plottools):with(plots):

l:=polygon([[0,0,0],[1,1,1],[1,1,0],[0,3,2]],thickness =3,color=red,style=POINT,symbol=circle,symbolsize=25); display(l);

也可设置成点集的效果,此时color确定点的颜色

5 plottools[cone]

Q1:=cone([0,0,-1],0.7,color=gold):

plots[display](Q1,scaling=constrained,style=patch,orie ntation=[30,77],axes=frame,view=[-.8..0.8,-.8..0.8,-1. .0]);

图16 对象函数cone用默认值设置的图形:封闭锥面

with(plottools):

Q1:=cone([0,0,-1],0.7,grid=[4,4]):

plots[display](Q1,scaling=constrained,style=patch,orie ntation=[44,45],axes=frame,view=[-.8..0.8,-.8..0.8,-1. .0]);

图17 减少grid数值,观察数据对象的组成成分

图18 把POLYGONS中每个双括号单独显示,9块侧面“网眼多边形”

还有一个“圆锥底圆面”(grid减为3时呈三角形)

6 plottools[cylinder]

with(plottools):

c := cylinder([1,1,0], 3,6,grid=[24,6]):

plots[display](c,scaling=constrained,axes=normal,style =patch,orientation=[45,70]);

图19 对象函数cylinder用默认值设置的封闭圆柱面

with(plottools):

c := cylinder([1,1,0], 3,2,capped=false,grid=[24,6]): plots[display](c,scaling=constrained,axes=normal,style =patch,orientation=[45,65]);

图20 可以使用选项capped=false取消封底

7 plottools[sphere]

with(plottools):

c := sphere([1,1,1], 3.3):

plots[display](c,scaling=constrained,style=patch,axes= boxed);

图21 对象函数sphere用默认值设置的球面图形

为了观察数据对象,减少grod的设置值。

with(plottools):

Q2:=sphere([0,0,0],1,color=brown,grid=[4,4]):

plots[display](Q2,scaling=constrained,style=patch,orie ntation=[61,52],axes=frame,view=[-1..1,-1..1,-1..1]);

减少grid设置之后的“球面”

8 plottools[hemisphere]

with(plottools):

c := hemisphere([1,2,3],2,color=magenta):

plots[display](c,scaling=constrained,style=patch, axes=

boxed,orientation=[20,75]);

c1:=hemisphere([1,2,1],4,capped=false,style=line): plots[display](c,c1,scaling=constrained,style=patch,ax es=boxed,orientation=[20,75]);

图22 对象函数hemisphere默认设置的半球面(左)和两图组合(右)

9 plottools[torus]

with(plottools):

c:=torus([1,1,1], 2, 4):

c1:=torus([1,1,-4], 2, 6,style=hidden):

plots[display](c,c1,scaling=constrained,axes=frame,ori entation=[30,80]);

图23 用display组合的两个torus图形可以保持各自的个性设置

10 plottools[semitorus]

with(plottools):

Q1:=semitorus([1,1,1],0..3*Pi/2,1,6,color=magenta,grid =[24,12]):

Q2:=semitorus([1,1,1],4*Pi/4..5*Pi/4,2,6,color=green,g rid=[12,12],capped=false):

PLOT3D(Q1,Q2,SCALING(CONSTRAINED),AXES(FRAME),ORIENTAT ION(-25,70));

图24 用display组合的两段semitorus图形

图9-25~32生成多面体图形对象的plottools包函数

11 plottools[cuboid](长方体)

with(plottools):

f := cuboid([0,0,0],[2,2,2]):

plots[display3d](f,style=patch,orientation=[15,80],axe s=frame);lprint(%);

图25 长方体图形

PLOT3D(POLYGONS([[0, 0, 0], [2, 0, 0], [2, 2, 0], [0, 2, 0]],[[0, 0, 0], [0, 2, 0], [0, 2, 2], [0, 0, 2]],[[0, 0, 0], [2, 0, 0], [2, 0, 2], [0, 0, 2]],[[2, 0, 0], [2, 2, 0], [2, 2, 2], [2, 0, 2]],[[0, 0, 2], [2, 0, 2], [2, 2, 2], [0, 2, 2]],[[2, 2, 0], [2, 2, 2], [0, 2, 2], [0, 2,

0]]),ORIENTATION(15.,80.),AXESSTYLE(FRAME),STYLE(PATCH))

察看图形数据结构可以得知,六面体的数据对象是POLYGONS型的,

with(plottools):

f := cuboid([0,0,0],[2,2,2]):

g:=cuboid([2,2,2],[3,3,3]):

h:=cuboid([0,0,2],[-1,-1,3]):

plots[display3d]({f,g,h},style=patch,orientation=[15,8 0]);

图26 三个长方体的组合图形

12 plottools[dodecahedron](正十二面体)

with(plottools):

f := dodecahedron([0,0,0]):

plots[display](f,style=line,thickness=(3),color=blue,a

xes=box);

PLOT3D(f,AXES(FRAME));

图27 同一个十二面体的不同设置

13 plottools[hexahedron](正六面体)

with(plottools):

f := hexahedron([0,0,0]), hexahedron([2,2,2],0.5): plots[display](f,style=patch,color=green);

图28 可以把两个对象赋名给一个变量名

14 plottools[icosahedron](正二十面体)

with(plottools):

f := icosahedron([0,0,0],1):

plots[display](f,lightmodel=light2);

图29 在display中加入“外部设置”的正20面体

15 plottools[octahedron](正八面体)

with(plottools):

f := octahedron([0,0,0],0.8):

plots[display](f);

图30 取默认设置的octahedron图形

16 plottools[tetrahedron](正四面体)

with(plottools):

f:=tetrahedron([0,0,0],0.8,color=red,style=line,thickn ess=3):

plots[display](f,orientation=[-20,52],axes=frame);

图31 在对象函数中加入个性设置项的tetrahedron图形

with(plottools):

f:=tetrahedron([0,0,0],0.8,color=red),tetrahedron([1,1 ,1],0.5,color=green):

PLOT3D(f,AXES(BOX));

matlab论文

The funny of MA TLAB 摘要: Maple是由Waterloo大学开发的数学系统软件,它不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能, MathCAD 是集文本编辑,数学计算,程序编辑和仿真于一体的软件,在数学实习期间的学习过程中,由对MATLAB基本知识出发,逐步认识MATLAB的构架,像MATLAB的桌面环境、MATLAB的操作界面、MATLAB的矩阵分析与处理、MATLAB绘图以及MATLAB 最重要的图形用户界面设计和仿真软件。这不仅仅是一个用计算机来操作的计算机软件,它更是与高等数学相结合在了一起,解决了数学中一些比较复杂,难计算的问题,而且运行效率高,对于一个数学专业的学生学习MATLAB这个软件我感觉是势在必得,有了它即使我们再枯燥的数学问题倜然可以转换为一个计算机编程问题,不仅充满了乐趣而且也很大程度提高了我们学习效率。并且,MATLAB它有以下主要的优点:①简单易学;②代码短小高效;③计算功能强大;④绘图功能强大;⑤工作效率非常高。 关键词: MATLAB 操作界面矩阵分析处理绘图图形用户界面(GUI)仿真(simulink) 正文: 绪言 Maple是由Waterloo大学开发的数学系统软件,它不但具有

精确的数值处理功能,而且具有无以伦比的符号计算功能. MATLAB程序主要由主程序和各种工具包组成, 其中主程序包含数百个内部核心函数, 工具包则包括复杂系统仿真,信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、μ分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包等. MathCAD是美国Mathsoft公司推出的一个交互式的数学系统软件.从早期的DOS下的1.0和Windows下的4.0版本,到今日的8.0版本,功能也从简单的数值计算,直至引用Maple强大的符号计算能力、使得它发生了一个质的飞跃. MathCAD是集文本编辑,数学计算,程序编辑和仿真于一体的软件 Mathematica是由美国物理学家Stephen Wolfram领导的Wolfram Research开发的数学系统软件.它拥有强大的数值计算和符号计算能力、在这一方面与Maple类似,但它的符号计算不是基于Maple上的,而是自己开发的. 概述 经过将近三周的学习时间,现在对matlab大致上有了一定认识。这三周来主要对MATLAB的桌面环境(启动按钮、命令窗口、命令历史窗口、工作空间窗口、当前目录浏览器),MATLAB 的操作界面,MATLAB的矩阵分析与处理以及用MATLAB绘图,MATLAB的桌图形用户界面设计,MATLAB Simulink 仿真软件的进行了学习,虽然没有熟练掌握但对一些基本的MATLAB知

三维制图教程

三维制图教程 绘制三维图 一、绘制三维模型 1、表面模型 1) 二维填充(Solid) 功能:创建填充多边形 单击二维填充按钮,根据提示,指定第一点、第二点、第三点 2) 三维面(3Dface) 单击三维面按钮,根据提示,指定四点即可,可着色进一步观察 3) 三维曲面 单击绘图菜单下表面下的三维曲面,弹出三维对象对话框,选择需要的对象即可 如:选择圆环,单击确定,根据提示指定一点为圆环的中心点,指定半径为100,圆管半径为10,则出现一圆环 4) 边(edge) 功能:控制三维边的可见性,使边界可见或不可见。 单击边按钮,根据提示选择两边,回车,则两边消失。 5) 三维网格(3dmesh) 功能:根据用户指定的M行N列个顶点和网格中每一顶点的位置生成三维空间的多边形网格。 单击三维网格按钮,输入M方向上的网格数量为2,N方向上的 1 网格数量为4,根据提示指定各点,则生成一三维格面

6) 旋转曲面(revsurf) 功能:由一条轨迹线绕一轴旋转,生成一个用三维多边形网格表示的回转面。 注意:轨迹曲线的旋转方向称为M方向,旋转轴线方向称为N方向,M方向的分段数由Surftab1确定,N方向的分段数由系统变量Surftab2确定。 设置M方向Surftab1为50、N方向Surftab2为50,单击旋转曲面按钮,根据提示选择旋转对象,再选择轴,回车确定起点角度为0,回车确定包含角为360度,则生成一旋转曲面。 7) 平移曲面(Tabsurf) 功能:生成由一条轨迹线和一条方向矢量所确定的、用三维多边形网格表示的柱面。 单击平移曲面按钮,选择曲线,再选择直线,回车,重复命令,先选择圆,再选择直线。 8) 直纹曲面(Rulesurf) 功能:通过两条指定的曲线或直线,生成一个用三维网格表示的直纹曲面。 单击直纹曲面按钮,依次选择各对象 9) 边界曲面 功能:用四条首尾连接的边构造一个由三维多边形网格表示的曲面。 2 单击边界曲面按钮,根据提示,依次选择四边,则生成一边界曲面。 2、实体模型 1) 长方体(Box) 功能:绘制长方体或正方体 单击长方体命令,根据提示输入角点,再指定角点或输入长度(长度指对角点长度)

第09章-Maple的3D图形数据对象及其绘图

第九章3D图形数据对象及其绘图 图9-01~11 3D图形数据对象的类型 图9-01~03 GRID的数据结构及其对应图形 PLOT3D(GRID(1..3,1..4,[[4,3,5,2],[3,5,7,0],[2,8,4,6]]) ,COLOR(RGB,1,0,0), AXESSTYLE(FRAME)); 图 1 第一种语句给出的GRID对象 plot3d(x*y,x=-3..3,y=-4..4,grid=[3,4],axes=box,orienta tion=[-12,64]);Q:=%:lprint(Q); 图 2 第二种形式的GRID对象通常出现在返回信息中 PLOT3D(GRID(-3...3.,-4...4.,Array(1..3,1..4,{(1,1) =12.,(1, 2) = 4.,(1, 3) = -3.99999999999999912,(1,4)=-11.9999999999999982,(3,1) = -12.,(3,2)=-4.,(3,3)=3.99999999999999912,(3,4)=11.9999999999999982},datatype=flo at[8],storage=rectangular,order=C_order)),ORIENTATION(-12.,64.),AXESLABELS(x ,y,""),AXESSTYLE(BOX)) 若从返回的图形数据结构中取出Array,放入执行组中执行之后,返回一个三行四列矩阵样子的二维数组。其各个元素的数值,正是Array中各个等式右端的数值。该等式左端括号中的正整数是矩阵的行码和列码。元素值为0的相关Array等式省略不写。 Array(1 .. 3,1 .. 4,{(1, 1) = 12., (1, 2) = 4., (1, 3) = -3.99999999999999912, (1, 4) = -11.9999999999999982, (3, 1) = -12., (3, 2) = -4., (3, 3) = 3.99999999999999912, (3, 4) = 11.9999999999999982},datatype = float[8],storage =

Maple6-ch6-绘图

第六章M aple的绘图功能 Maple之所以在欧美流行,一个重要的原因就是它简单但功能强大的图形绘制函数,以及它内建的大量的特殊函数,要以灵活、方便的实现用户所预期的功能。 §6.1 绘图功能概述 可以将Maple的绘图函数简单表示为: 函数名(“公式、数据”,“变量范围”,“函数参数”) 6.1.1 二维图形工作环境设置 在普通的编辑状态,用户是看不见Maple中同绘图相关的菜单与工具栏的,如果用户工作簿中利用函数生成了一个二维图形,并使用鼠标选中系统生成的图形,则Maple的菜单及工具条上就会出现如图所示粉红色椭圆线圈着的新菜单与工具栏。 新增菜单栏各选项与对应的工具栏的作用如下: 1.Style菜单 主要提供参曲线的线型、点、线宽等属性的设置选项。包括的选项有: 1

。 。 。 。 练习:用以上“Style”菜单栏中各种选项观察正弦曲线变化时的表现形式。 2.L egend菜单(图例菜单) 例如:在同一坐标系下作正弦与余弦的图形并给出图例。 解(1)作图: > plot([sin(x), cos(x)], x=-Pi..Pi,color=[red,blue], style=[point,line]); (2)选“Legend-Edit Legend”菜单: 选中菜单,出现两个可选项:“Show Legend”与“Edit Legend”。若选后者则有 2 2

填入不同曲线所代表的函数即可得 2.Axes菜单----可用工具按钮给出不同坐标原点下的坐标系等 3.Projection----选择坐标轴是否按等比例显示,默认为不按,即Unconstrained 4.Export----将所选择图形对象另存为其他图形对象,常用的格式有“JPG”、“GIF”、“BMP”等Windwos中的常见格式。 5.具条的最左方还有一项数据显示功能,它以当前坐标轴为基准显示鼠标的点击位置。 练习:在同一个坐标系下显示出函数exp(-abs(x)、正弦及余弦在[-Pi,Pi]的图形,并给出图例。(要求:指定不同线色、线型,给出等比例坐标系。) 解 >plot([exp(-abs(x)),sin(x),cos(x)],x=-Pi..Pi, color=[red, blue,yellow], style=[line,point,line]); 6.1.2 三维图形工作环境设置 当选中Plot3D等三维图形生成函数创建的对象时,菜单栏除会出现同选中二维图形相同的几个选项外(但选项的内容多数发生了变化),还新增了“color”选项。 比二维时增加了: Patch and contour:无网格多边形填充加等高线 Hiden line: 无填充,多边形显示 Counter: 等高线显示 3

MATLAB操作基础

第1章 MATLAB操作基础 MATLAB是一款功能十分强大的工程软件,用户可以通过它实现科学计算、工程运算和仿真运算。在本章中,将详细讲解MATLAB的基础操作内容。本章的内容是后面章节的基础,了解常见的操作方法会给用户操作MATLAB带来便利。 1.1 MATLAB概述 从第一个版本推出以来,MATLAB就以其友好的界面、强大的功能受到用户的喜爱。随后的版本更是在原始版本的基础上,不断扩展MATLAB软件的功能。下面将概要地介绍MATLAB的主要功能和特点。 1.1.1 MATLAB的主要功能 MATLAB提供了上百个预先定义好的命令和函数,这些函数可通过用户自定义扩展。MATLAB能够用单一的函数求解线性系统,完成大量的高级矩阵处理。此外,它还提供了大量强有力的二维、三维图形工具,可以方便、快捷地完成各种绘图操作。根据MATLAB 可以实现的任务性质,可将其功能划分为如下几个方面。 ?数值计算和符号计算功能:以矩阵作为数据操作的基本单位,提供了丰富的数值计算函数。与著名的符号计算语言——Maple相结合,使得MATLAB拥有了符号 计算功能。 ?绘图功能:提供了两个层次的绘图操作,一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。 ?编程语言:具有程序结构控制、函数调用、数据结构、输入/输出、面向对象等程序语言特征。 ?MATLAB工具箱:MATLAB包含两部分内容,即基本部分和各种可选的工具箱。 MATLAB工具箱分为两大类:功能性工具箱和学科性工具箱。 1.1.2 MATLAB的特点 MATLAB利用丰富的函数资源,为用户提供了最直观、最简洁的程序开发环境,使编程人员从繁琐的程序代码中解放出来。MATLAB的主要特点如下: ?语言简洁紧凑,使用方便灵活,函数丰富。 ?运算符丰富。由于MATLAB是用C语言编写的,因此其提供了和C语言几乎一样多的运算符,灵活运用这些运算符可使程序变得极为简短。

智慧树知到《数学建模与系统仿真》章节测试[完整答案]

智慧树知到《数学建模与系统仿真》章节测 试[完整答案] 智慧树知到《数学建模与系统仿真》章节测试答案 第一章单元测试 1、数学模型是对于现实世界的一个特定对象,一个特定目的,根据特有的内在规律,做出一些必要的假设,运用适当的数学工具,得到一个数学结构. A:错 B:对 答案:【对】 2、数学建模是利用数学方法解决实际问题的一种实践.即通过抽象、简化、假设、引进变量等处理过程后,将实际问题用数学方式表达,建立起数学模型,然后运用先进的数学方法及计算机技术进行求解,是对实际问题的完全解答和真实反映,结果真实可靠。 A:对 B:错 答案:【错】 3、数学模型是用数学符号、数学公式、程序、图、表等刻画客观事物的本质属性与内在联系的理想化表述. 数学建模就是建立数学模型的全过程(包括表述、求解、解释、检验). A:对 B:错

答案:【对】 4、数学模型(Mathematical Model):重过程;数学建模(Mathematical Modeling):重结果。 A:错 B:对 答案:【错】 5、人口增长的Logistic模型,人口增长过程是先慢后快。 A:错 B:对 答案:【错】 6、MATLAB的主要功能有 A:符号计算 B:绘图功能 C:与其它程序语言交互的接口 D:数值计算 答案:【 符号计算; 绘图功能; 与其它程序语言交互的接口; 数值计算】 7、Mathematica的基本功能有 A:语言功能(Programing Language)

B:符号运算(Algebric Computation) C:数值运算(Numeric Computation) D:图像处理(Graphics ) 答案:【语言功能(Programing Language); 符号运算(Algebric Computation); 数值运算(Numeric Computation); 图像处理(Graphics )】 8、数值计算是下列哪些软件的一个主要功能 A:Maple B:Java C:MATLAB D:Mathematica 答案:【Maple; MATLAB; Mathematica】 9、评阅数学建模论文的标准有: A:完全一致的结果 B:表述的清晰性 C:建模的创造性 D:论文假设的合理性 答案:【表述的清晰性;

Maple用法

Maple函数用法 一、基本命令 重新开始:restart 命名:名字:= 引用前值:% 字符连接:|| 保护命名:protect 解除保护命名:unprotrct 变量类型:whattype 检验命名:assigned 别名:alias 宏:macro 帮助:?函数名map把命令作用到每一个元素,seq生成序列,add生成和,mul生成积 二、基本运算 1. 近似计算:evalf(表达式,小数位数),用Digits命令提前设定小数位数 2. 取整运算:round四舍五入,trunc向0取整, ceil向-∝取整, floor向∝取整 3. 范围限定:assume(限定变量范围)frac小数部分 4. 绝对值(模):abs(表达式),复数求其模 5. 同余:mod(数1,数2),或者:数1 mod 数2 6. 平方根:sqrt(表达式),平方根最接近整数:isqrt(表达式) 7. 阶乘:factorial(数),双阶乘:doublefactorial(数) 8. 分解质因数:ifactor(数),分解质因数成组ifactors(数) 9. 商与余数:商iquo(除数,被除数),余数irem(除数,被除数) 10.最大公约数:igcd(数1,数2),最小公倍数:ilcm(数1,数2) 11.形如as+bt=(a,b)分解:igcdex(a,b,’s’,’t’) 12.数组最大最小值:max(数1,数2,…),min(数1,数2,…) 13.实部、虚部与幅角:实部Re(复数),虚部Im(复数),幅角argument 14.共轭复数:conjugate(复数) 15.形如a+bi整理:evalc(表达式) 16.并集:集合1 union 集合2,交集:intersect,差集:minus 17.元素个数:nops(集合),用op可把集合转化成表达式 三、多项式 1. 降幂排列:sort(多项式),字典排序plex(第三个参数) 2. 次数:degree(多项式),系数:coeff(多项式,项),首项系数:lcoeff 尾项系数:tcoeff,所有系数:coeffs(多项式,变量,‘power‘) 3. 合并同类项:collect(多项式,合并参数) 4. 商式:quo(除式,被除式,变量),余式:rem,整除检验:divide 5. 最大公因式:gcd(多项式1,多项式2),最小公倍式lcm 6. 因式分解:factor(多项式),可用第二个参数限定数域缺省代表有理数域 7. 分母有理化:rationalize(多项式),有理分式化简:normal或者factor 8. 化简表达式:simplify,带假设化简:simplify(表达式,assume=范围) 附加关系化简:simplify(表达式,{条件})代换:subs(条件,表达式) 9. 展开与合并:展开expand(表达式),合并combine(表达式) 10.等价转换:convert(函数,转化成的函数)

第07章-Maple的3D绘图基本功能

第七章Maple的3D图形基本功能图7-01~06 快捷绘图函数smartplot3d的运用 smartplot3d(x^2 + y^2);lprint(%); 图 1 smartplot3d直接返回的图形和数据结构 smartplot3d(abs(x)+abs(y)+abs(z)=4);lprint(%); 图2smartplot3d还可以接受非初等函数的隐函数方程smartplot3d(x^2 + y^2,x*y);lprint(%); 图3smartplot3d可以接受多个表达式并可分别做交互式设置利用函数smartplt3d还可以绘制自定义的“分区函数”的图形。 M:=(x,y,z)->piecewise( y>0 and x>0 ,1,-1); M(x,y,z);

smartplot3d(M(x,y,z));lprint(%); 图4利用smartplot3d绘制“分区函数”的图形(做过交互式设置)smartplot3d函数具有multyple功能,因而可以绘制曲面族的图形。 图5利用smartplot3d函数的multyple功能绘制曲面族的图形 可以把smartplot3d函数返回的图形数据结构拷入一个执行组,并添加一些plot设置选项,再次执行。 INTERFACE_SMARTPLOT3D([x^2+y^2,x,y,_NoZ],style=LINE,axe s=frame,color=blue);lprint(%); 图6把图1的返回数据拷入一个执行组,并添加一些设置选项,再次执行的结果 图73D图形窗口 图83D图形工具栏的第一组 图93D图形工具栏的第二组 图10各钮对应的图形样式 图113D图形工具栏的第三组 图12 不同样式的坐标架 图13Style级联菜单

Maple6

(第六章M aple的绘图功能) §6.3 三维图形绘制 三绘图原理上,三维图形与二维图形没有本质的区别,但由于涉及到如何在二维的显示设备上表示的问题,在图形学中,三维图形增加了投影方式的选择。然而在Maple系统中,用户却不需要考虑投影方面的问题,因为几乎所有的三维图形都是以斜投影的方式表示的。用户可以改变的,只有物体的方向以及视点的远近。由于三维图形绘制时可以选择的参数同二维图形基本类似,所以在对plot3d函数做基本介绍后,本节的重点将转移到一些plot程序库附带的其他三维图形绘制函数上,比如等高线、密度图等的绘制。 6.3.1 基本三维函数图形的生成 由于现实中人们熟知的三维图形一般并非简单函数可以生成的,即使可以表示,也涉及到很多参数的设定,所以在实际三维绘图中,plot3d函数并不像plot函数那样常用。一般只是用它对三维函数曲线进行绘绘制。它的使用方法同plot函数几乎完全一样,比如利用简化输入绘制一个三维曲面: > f:=(x,y)->cos(x*y): > plot3d(f,-3..3,-2..2,orientation=[160,50]); 之所以称这种输入方法为简化输入,因为我们在输入坐标范围的时候,并不是按照“x=a..b,y=c..d”这种规则形式书写的,而是直接写成“a..b,c..d”的形式。注意这样的输入方法只对函数变量定义为“x,y”的形式有效,系统会自动将坐标x轴的范围定义为“a..b”,而将y轴定义为“c..d”。同样,在plot函数中也可以对变量被定义为x的函数使用这种简化输入法。相对于二维的plot函数,plot3d在坐标轴的形式,曲线、曲面的式样等一些方面有新的参数。在上例中使用的orientation参数就是其中之一,它可以确定用户的观察角度。“[ ]”中的数值分别对应三维工具栏中θ角与ϕ角。由于这些参数同plot 函数中的参数大同小异,本节不再讲述。 1

maple画图命令

maple画图命令 1 二维图形制作 Maple所提供的二维绘图指令plot可以绘制二维的函数图、参数图、极坐标图、等高线图、不等式图,等等. 这些绘图指令有些已经内嵌在其核心程序里, Maple启动时即被装入,直接调用函数命令即可,有些则需要使用with(plots)调用plots函数库才能完成. 1.1 基本二维绘图指令 plot (f(x), x=xmin .. xmax); plot (f(x), x=xmin .. xmax, y=ymin .. ymax); plot ([f1(x), f2(x), …], x=xmin .. xmax); plot (f(x), x=xmin .. xmax, option); 其中,xmin..xmax为x的变化范围,ymin..ymax为y(即f(x))的变化范围. option选项参数主要有: axes:设定坐标轴的显示方式, 一般有FRAME(坐标轴在图形的左边与下面)、BOXED(坐标轴围绕图形)、NORMAL(一般方式显示)或NONE(无) color:设定图形所要涂的颜色(可选用也可自设) coords:指定绘图时所用的坐标系(笛卡尔坐标系(cartesian,默认)、极坐标系(polar)、双极坐标系(bipolar)、logarthmic(对数坐标系)等 discont:设定函数在不是否用线段连接起来(discont=true则不连接, 默认是discont=false) labels:设定坐标轴的名称(labels=[x, y], x与y分别为x与y坐标轴的名称) linestyle:设定所绘线条的线型(linestyle=n, n为1是实线, 2为点, 3为虚线, 4为虚线与点交错) numpoints:设定产生一个函数图形所需的最少样点 scaling:设置x与y轴的比例(unconstrained非约束,constrained约束,比例为1:1) style:设定图形的显示样式(LINE(线形)、POINT(点)、PA

Maple图形绘制.

第五章Maple图形绘制 图形无疑是数学中最令人着迷的部分, 一些枯燥的公式可以从图形看出其美. 历史上有许多学者利用函数图形解决了学科中的许多难题. 客观地说, Maple不是一种可视化的语言—它不会产生出版品质的图形. 然后, 它的图形功能非常强大, 足以提供更多的关于函数的信息. 当然, 如果需要, 它的图形作适当改进即可满足出版要求. 限于篇幅, 本章所有图形未作打印, 读者只需在计算机上按照书中语句操作即可观其效果, 更多图形功能可通过Maple帮助获得. 1二维图形制作 Maple所提供的二维绘图指令plot可以绘制二维的函数图、参数图、极坐标图、等高线图、不等式图,等等. 这些绘图指令有些已经内嵌在其核心程序里, Maple启动时即被装入,直接调用函数命令即可,有些则需要使用with(plots)调用plots函数库才能完成. 1.1 基本二维绘图指令 plot (f(x), x=xmin .. xmax); plot (f(x), x=xmin .. xmax, y=ymin .. ymax); plot ([f1(x), f2(x), …], x=xmin .. xmax); plot (f(x), x=xmin .. xmax, option); 其中,xmin..xmax为x的变化范围,ymin..ymax为y(即f(x))的变化范围. option选项参数主要有: axes:设定坐标轴的显示方式, 一般有FRAME(坐标轴在图形的左边与下面)、BOXED(坐标轴围绕图形)、NORMAL(一般方式显示)或NONE(无) color:设定图形所要涂的颜色(可选用也可自设) coords:指定绘图时所用的坐标系(笛卡尔坐标系(cartesian,默认)、极坐标系(polar)、

第九章 路线设计图表的绘制

第九章路线设计图表的绘制 设计的最终产品是设计图纸。对计算机辅助设计系统而言,图形和表格处理的方便性和自动化程度的高低往往是评价该系统性能的主要技术指标之一。图形和表格处理技术是研究和开发道路CAD系统的重要内容 第一节图形与表格处理技术概述 一、图形与表格处理技术发展历程 道路CAD系统中图形和表格处理技术的发展经历了以下三个阶段。 1.直接绘图阶段 早期的道路CAD系统中,由于没有图形和表格支撑软件,因而图形和表格的处理功能很弱,图形和表格的绘制是通过编制高级语言接口直接驱动绘图机和打印机来实现的。工作过程如图9-1所示。 图9-1 直接绘图模式 对于这种绘图方式,设计者需要按照设计图纸的要求,将图纸和表格需要的数据全部输入,按照图纸固定的内容和布局编写程序,直接输出图纸介质。程序犹如“黑匣子”,在图纸输出以前,设计者无法知道图纸是否正确,在工作过程中用户无法干预。输出的设计图纸不符合要求时,只能修改原始数据。 2.参数化绘图阶段 20世纪80年代中后期,市场上出现了较为成熟的微机图表支撑软件,有代表性的有AutoCAD、EXCEL,MicroStation和Lotus等。有了支撑软件的支持,道路CAD系统的图表处理功能有了很大的提高。这一阶段图形的绘制是通过编制高级语言与图形支撑软件的接口,先形成图形软件能够接受的中间文件,由支撑软件完成图形处理工作,设计者利用其强大的图形编辑功能对形成的图形修改,满意后再输出设计图纸。工作流程如图9-2所示。 图9-2 通过支持软件绘图 这种绘图方式的主要优点是设计者可以对生成的图形进行修改,增强了系统图形处理的灵活性。缺点是需要在CAD系统和图形支撑软件之间频繁转换,自动化程度降低。 3.设计、计算与图表绘制一体化绘图阶段 随着AutoCAD的升级发展,其开发工具也在不断改进提高,同时也为道路CAD系统实现设计、计算与绘图一体化的目标提供了技术支持。所谓设计、计算与图表绘制一体化即在统

3DMine教程

3DMine软件教程

目录 13DMine软件功能及基本操作 (1) 1.1软件界面组成 (1) 1.2鼠标的运用 (3) 1.3文件类型和格式 (3) 1.4基本操作 (3) 1.5外部数据文件的导入与导出 (5) 1.6表格文件数据的提取 (6) 2地质数据库的建库过程 (8) 2.1数据的定义和数据的准备 (8) 2.2数据的格式内容 (8) 2.2.1定位表 (8) 2.2.2测斜表 (8) 2.2.3岩性表和分析表(或化验表) (8) 2.3数据库的创建 (9) 2.4向数据库中导入数据 (11) 3自学教程一----线赋高程值及DTM模型的生成 (15) 3.1检测线条连续性 (15) 3.2线赋高程值 (15) 3.3生成DTM表面 (17) 4自学教程二----制作钻孔柱状图与剖面图 (19)

4.1钻孔柱状图的制作 (19) 4.2剖面图的制作 (23) 5自学教程三----实体的生成 (28) 5.1三角网的生成 (28) 5.2实体的生成 (28) 5.2.1闭合线的检查 (29) 5.2.2多段线闭合 (30) 5.2.3闭合线点处理与线自相交处理 (31) 5.2.4连接三角网 (33) 5.2.5布尔运算 (35) 6自学教程四----地质中段平面图的处理 (37) 6.1坐标转换 (37) 6.2巷道提取 (38) 6.3巷道腰线建模 (38) 7自学教程五----矿产储量计算 (41) 7.1创建块体模型 (41) 7.2利用组合样对空白区进行品位估值 (44) 7.2.1对块体模型添加新属性 (44) 7.2.2对块体模型赋单一值 (45) 7.2.3利用面对块体进行条件约束 (47) 7.2.4生成组合样 (48) 7.2.5组合样估值 (49)

maple矩阵求解

72 线性代数 第 四 章 本章将介绍Maple 软件中的的线性代数工具,以及利用Maple 软件解决线性代数问题的方法和技巧。 本章具体包括以下内容: Maple 中的矩阵运算 Maple 中的行列式计算 利用Maple 计算特征值 Maple 中数组和表的求值机制 Maple 线性代数工具包中的常用函数 Maple 中的特殊矩阵 利用Maple 线性代数问题的实例

。73. 。 在载入这个工具包时产生了两个警告,不用为此担心,这是因为Maple 系统中已有的两个函数——norm 和trace 被linalg 中的同名函数所覆盖了。原来系统中这两个函数分别是用于计算多项式的范数(norm )和程序调试跟踪的,一般情况下,在解决线性代数问题时用不到。如果确实要用系统中的库函数,可以再用readlib 将其重新载入进来。 linalg 中的主要函数的详细介绍我们将留到本章第三节中完成,在这一节中,我们主要 着眼于矩阵的基本运算,比如加法、乘法和乘幂等。我们先用上一章中介绍过的方法来定义一些矩阵: 矩阵的代数运算最直接而且直观的方法莫过于使用函数evalm( )了,只要把矩阵的代数计算表达式作为它的参数,就可以得到结果的矩阵。 矩阵和标量也可以直接作和差。但要注意的是,和Matlab 以及Fortran90中的相应的运 算定义不同,在Maple 中,矩阵和标量相加(相减),被定义成矩阵的对角元和标量分别相加(相减),也就是矩阵加上(减去)和它相同形状的数量阵。请看下面的例子: 还需要说明的是,运算符“*”仅仅用来表示数乘,对于矩阵乘法,绝对不能使用。这

。74. 是因为,运算符“* ”在Maple 中被定义成满足交换律的乘法,而我们知道,矩阵乘法是不满足交换律的。我们可以通过简单的例子来说明这个事实。 可以看到,Maple 在化简表达式时,丝毫没有顾及它们的类型,只把它们作为一般的符号变量来计算,甚至不考虑这些矩阵是否可以相乘或相加。如果我们用evalm 来计算,也就得不到正确的结果了。在Maple V Release 4及以后的版本中,程序设计者考虑到用户初次使用时可能对此不了解,特别给除了错误信息。 但如果你使用的是早期版本,就不但没有错误信息,还会给出错误的结果,使用时一定要特别注意。上面的错误信息告诉我们,矩阵/ 向量运算必须使用&*作为乘法运算符。让我 们再来试一试。 这次,我们得到了期望的结果。 矩阵也可以进行乘幂运算,矩阵的乘幂运算符和单个表达式的相同——“^”,当然,也 需要用evalm 来计算得到结果矩阵。 Maple 不仅可以计算矩阵的自然数次幂,同样也可以计算矩阵的负整数次幂。 在计算矩阵的0次幂时,却不怎么令人满意,它的结果令人啼笑皆非:

maple绘图

Maple 绘图 第 六 章 这一章将围绕着Maple 中的绘图功能进行初步的介绍。本章的介绍将以Windows95系统中的Maple V Release 5为例,在其他版本的Maple 中,大部分的例子都可以实现。 但是,和各种系统相应,这些绘图功能的输 出是有所不同的。我们把介绍的重点放在各 类函数的使用方法上,对于不同系统下的界 面差异将不作介绍。 本章具体包括以下内容: 单变量函数曲线绘制 参数曲线的绘制 隐函数确定的曲线 根据数据绘制曲线 二维动画的绘制 双变量函数曲面绘制 参数曲面的绘制 隐函数确定的曲面 由数据生成曲面 三维动画的绘制

。1. 和别的语言不同,当我们利用Maple 进行二维或者三维绘图时,Maple 可以自动地决定所需的点数、坐标轴的位置、标尺的数字、图形的颜色等等繁杂的设置,在默认状态下就可以绘制出令人满意的图形。当然,你也可以自己设定各种不同的绘图设置,比如更改绘图的坐标系(以画出极坐标、球坐标、或柱坐标下的图形),或者绘图的点数。 下面,我们就由浅入深地介绍Maple 中的绘图方法。 6.1 二维基本图形绘制 在Maple 中,单变量函数曲线的绘制可以使用函数plot 。例如,我们需要绘制函数)sin()(32 x e x f x π-=在区间[-2,2]上的图形,我们可以这样来实现。首先用箭头操作符定义函数: 然后,调用plot 函数。 键入命令后,所绘制的图形会立即出现在同一个可执行块中。Maple V Release 5也支持把图形单独绘制在一个窗口中,如图 6.1所示,只需要在菜单Option | Plot Display 选择Window 即可。 一般地,函数plot 的调用格式为plot (f , a..b, options )。其中,f 是需要绘制的函数,a..b 是自变量的变化范围,options 是可选参数,用它可以控制图形的绘制,我们将在下一节中详细介绍。除了可以绘制函数的图形外,plot 也可以绘制表达式表示的函数图形,调用格式为plot (expr , x = a..b, options )。其中,expr 是表达式(相信读者一定知道表达式和函数间的区别了),x 是表达式中的自变量,因为表达式中没有自变量的信息(甚至可以是多变量的表达式),所以必须指定自变量,并用等式形式给出自变量的变化范围。

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