当前位置:文档之家› 实验空间图形的画法(基础实验)

实验空间图形的画法(基础实验)

实验空间图形的画法(基础实验)
实验空间图形的画法(基础实验)

项目二 一元函数积分学与空间图形的画法

实验2 空间图形的画法(基础实验)

实验目的 掌握用Mathematica 绘制空间曲面和曲线的方法. 熟悉常用空间曲线和空间曲面 的图形特征,通过作图和观察, 提高空间想像能力. 深入理解二次曲面方程及其图形.

基本命令

1.空间直角坐标系中作三维图形的命令Plot3D

命令Plot3D 主要用于绘制二元函数),(y x f z =的图形. 该命令的基本格式为

Plot3D[f[x,y],{x,x1,x2},{y,y1,y2},选项]

其中f[x,y]是y x ,的二元函数, x1,x2表示x 的作图范围, y1,y2表示y 的作图范围.

例如,输入

Plot3D[x^2+y^2,{x,-2,2},{y,-2,2}]

则输出函数22y x z +=在区域22,22≤≤-≤≤-y x 上的图形(图2.1)

与Plot 命令类似, Plot3D 有许多选项. 其中常用的如PlotPoints 和ViewPoint. PlotPoints 的用法与以前相同. 由于其默认值为PlotPoints->15, 常常需要增加一些点以使曲面更加精致, 可能要

用更多的时间才能完成作图. 选项ViewPoint 用于选择图形的视点(视角), 其默认值为 ViewPoint->{1.3,-2.4,2.0},需要时可以改变视点.

2.利用参数方程作空间曲面或曲线的命令ParametricPlot3D 用于作曲面时, 该命令的基本格式为

ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,u1,u2},{v,v1,v2},选项]其中x[u,v],y[u,v],z[u,v]是曲面的参数方程表示式. u1,u2是作图时参数u 的范围, v1,v2是参数v 的

范围.

例如,对前面的旋转抛物面, 输入

ParametricPlot3D[{u*Cos[v],u*Sin[v],u^2},{u,0,3},{v,0,2 Pi}]

同样得到曲面22y x z +=的图形(图2.2).

由于自变量的取值范围不同, 图形也不同. 不过, 后者比较好的反映了旋转曲面的特点, 因 而是常用的方法.

又如, 以原点为中心, 2为半径的球面. 它是多值函数, 不能用命令Plot3D 作图. 但是, 它的 参数方程为

,20,0,cos 2,sin sin 2,cos sin 2πθπ??θ?θ?≤≤≤≤===z y x

因此,只要输入

ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi}]便作出了方程为22222=++y x z 的球面(图2.3).

.用于作空间曲线时,ParametricPlot3D 的基本格式为

ParametricPlot3D[{x[t],y[t],z[t]},{t,t1,t2},选项]

其中x[t],y[t],z[t]是曲线的参数方程表示式. t1,t2是作图时参数t 的范围.

例如, 空间螺旋线的参数方程为

).80(10/,sin ,cos π≤≤===t t z t y t x

输入

ParametricPlot3D[{Cos[t],Sin[t],t/10,RGBColor[1,0,0]},{t,0,8 Pi}]则输出了一条红色的螺旋线(图2.4).

在这个例子中,请读者注意选项RGBColor[1,0,0]的位置.

用于作空间曲线时, ParametricPlot3D的选项PlotPoints的默认值是30, 选项ViewPoint的默

认值没有改变.

3.作三维动画的命令MoviPlot3D:

无论在平面或空间, 先作出一系列的图形, 再连续不断地放映, 便得到动画.

例如, 输入调用作图软件包命令

<

执行后再输入

MoviePlot3D[Cos[t*x]*Sin[t*y],{x,-Pi,Pi},{y,-Pi,Pi},{t,1,2},Frames->12]

则作出了12幅曲面图, 选中任一幅图形, 双击它便可形成动画.

实验举例

一般二元函数作图

例2.1 (教材例2.1) 作出平面y

0≤

≤y

x.

0,3

2

x

z3

6-

-

=的图形,其中2输入

Plot3D[6-2x-3y,{x,0,3},{y,0,2}]

如果只要位于第一卦限的部分, 则输入

Plot3D[6-2x-3y,{x,0,3},{y,0,2},PlotRange->{0,6}]

观察图形. 其中作图范围选项为PlotRange->{0,6},而删除的部分显示为一块水平平面(图2.6).

图2.6

例2.2 (教材 例2.2) 作出函数2

214y x z ++=的图形.

输入

k[x_,y_]:=4/(1+x^2+y^2)

Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotPoints->30,

PlotRange->{0,4},BoxRatios->{1,1,1}]

则输出函数的图形2.7. 观察图形, 理解选项PlotRange->{0,4}和BoxRatios->{1,1,1}的含义. 选项

BoxRatios 的默认值是

例2.3 (教材 例2.3) 作出函数2

2

y x xye z ---=的图形.

输入命令

Plot3D[-x*y*Exp[-x^2-y^2],{x,-3,3},{y,-3,3},

PlotPoints->30,AspectRatio->Automatic];

则输出所求图形(图

图2.8

例2.4 (教材 例2.4) 作出函数)94cos(22

y x z +=的图形. 输入

Plot3D[Cos[4x^2+9y^2],{x,-1,1},{y,-1,1},Boxed->False,Axes->Automatic,PlotPoints->30,Shading->False]

则输出网格形式的曲面图2.9, 这是选项Shading->False 起的作用, 同时注意选项Boxed->False 的作用.

二次曲面

例2.5 (教材 例2.5) 作出椭球面11

942

22=++z y x 的图形. 这是多值函数, 用参数方程作图的命令ParametricPlot3D. 该曲面的参数方程为

,cos ,sin sin 3,cos sin 2u z v u y v u x === (ππ20,0≤≤≤≤v u ).

输入

ParametricPlot3D[{2*Sin[u]*Cos[v],3*Sin[u]*Sin[v], Cos[u]},{u,0,Pi},{v,0,2 Pi},PlotPoints->30]

则输出椭球面的图形(图2.10). 其中选项PlotPoints->30是增加取点的数量, 可使图形更加光滑.

图2.10

例2.6 (教材 例2.6) 作出单叶双曲面19

412

22=-+z y x 的图形. 曲面的参数方程为

,tan 3,cos sec 2,sin sec u z v u y v u x === (.20,2/2/πππ≤≤<<-v u )

输入

ParametricPlot3D[{Sec[u]*Sin[v],2*Sec[u]*Cos[v], 3*Tan[u]},{u,-Pi/4,Pi/4},{v,0,2 Pi},PlotPoints->30]

则输出单叶双曲面的图形(图2.11).

图2.11

例2.7 作双叶双曲面13

.14.15.122

2222-=-+z y x 的图形.

曲面的参数方程是

,csc 3.1,sin cot 4.1,cos cot 5.1u z v u y v u x ===

其中参数πππ<<-≤

<<-<≤-v u ,02

对应双叶双曲面的另一叶. 输入

sh1=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4*

Cot[u]*Sin[v],1.3/Sin[u]},{u,Pi/1000,Pi/2},{v,-Pi,Pi},DisplayFunction->Identity];

(*DisplayFunction->Identity 是使图形暂时不输出的选项*) sh2=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4* Cot[u]*Sin[v],1.3/Sin[u]},{u,-Pi/2,-Pi/1000}, {v,-Pi,Pi},DisplayFunction->Identity];

Show[sh1,sh2,DisplayFunction->$DisplayFunction]

(*命令Show[sh1,sh2]是把图形sh1,sh2放置在一起, DisplayFunction->$DisplayFunction 是恢复显示图形的选项*)输出为图2.12.

例2.8 可以证明: 函数xy z =的图形是双曲抛物面. 在区域22,22≤≤-≤≤-y x 上作出它的图形.

输入

Plot3D[x*y,{x,-2,2},{y,-2,2},BoxRatios->{1,1,2}, PlotPoints->30]

输出图形略. 也可以用ParametricPlot3命令作出这个图形, 输入

ParametricPlot3[{r*Cos[t],r*Sin[t],r^2*Cos[t] *Sin[t]},{r,0,2},{t,0,2 Pi},PlotPoints->30]

输出为图2.13

例2.9 (教材 例2.7) 作出圆环

v z u v y u v x sin 7,sin )cos 38(,cos )cos 38(=+=+=,(πππ22/,2/30≤≤≤≤v u )

的图形.

输入

ParametricPlot3D[{(8+3*Cos[v])*Cos[u],(8+3*Cos[v])*Sin[u],7*Sin[v]},{u,0,3*Pi/2},{v,Pi/2,2*Pi}];

图2.14

例2.10 画出参数曲面

]2,001.0[],4,0[)5/2/ln(tan cos sin sin sin cos ∈∈??

?

??++===v u u v v z v

u y v u x π 的图形.

输入命令

ParametricPlot3D[{Cos[u]*Sin[v],

Sin[u]Sin[v],Cos[v]+Log[Tan[v/2]+u/5]}, {u,0,4*Pi},{v,0.001,2}];

则输出所求图形(图2.15).

曲面相交

例2.11 (教材 例2.8) 作出球面22222=++z y x 和柱面1)1(22=+-y x 相交的图形. 输入

g1=ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi},DisplayFunction->Identity];

g2=ParametricPlot3D[{2Cos[u]^2,Sin[2u],v},

{u,-Pi/2,Pi/2},{v,-3,3},DisplayFunction->Identity];Show[g1,g2,DisplayFunction->$DisplayFunction]

则输出所求图形(图2.16)

图2.16

例2.12 作出锥面222z y x =+和柱面1)1(22=+-y x 相交的图形. 输入

g3=ParametricPlot3D[{r*Cos[t],r*Sin[t],r}, {r,-3,3},{t,0,2 Pi},

DisplayFunction->Identity];

Show[g2,g3,DisplayFunction->$DisplayFunction]

输出为图2.17.

图2.17

例2.13 画出以平面曲线x y cos =为准线, 母线平等Z 轴的柱面的图形. 写出这一曲面的参数方程为

??

?

??=∈-∈==s z R s t t y t x ],,[,cos ππ 取参数s 的范围为[0, 8]. 输入命令

ParametricPlot3D[{t,Cos[t],s},{t,-Pi,Pi},{s,0,8}]

则输出所求图形(图2.18).

例2.14 (教材 例2.9) 作出曲面x y x y x z =+--=2222,1及xOy 面所围成的立体图形. 输入

g1=ParametricPlot3D[{r*Cos[t], r*Sin[t],r^2},{t,0,2*Pi},{r,0,1},PlotPoints->30];g2=ParametricPlot3D[{Cos[t]*Sin[r],Sin[t]Sin[r],Cos[r]+1},{t,0,2*Pi},{r,0,Pi/2},PlotPoints->30];

Show[g1,g2]

则输出所求图形(图

图2.19

例2.15 (教材例2.10) 作出螺旋线t

10

cos

10=

=(R

=

sin

,

t

,

y

z

t

x2

t∈)在xOz面上的正投影曲线的图形.

所给螺旋线在xOz面上的投影曲线的参数方程为

cos

=.

10=

,

t

z

t

x2

输入

ParametricPlot[{2t,10Cos[t]},{t,-2Pi,2Pi}];

则输出所求图形(图

图2.20

注:将表示曲线的方程组, 消去其中一个变量, 即得到曲线在相应于这一变量方向上的正投影曲线的方程, 不考虑曲线所在平面, 它就是投影柱面方程; 对于参数方程, 只要注意将方程中并不存在的那个变元看成第二参数而添加第三个方程即可.

例2.16 (教材例2.11) 作出默比乌斯带(单侧曲面)的图形.

输入

Clear[r,x,y,z];

r[t_,v_]:=2+0.5*v*Cos[t/2];

x[t_,v_]:=r[t,v]*Cos[t]

y[t_,v_]:=r[t,v]*Sin[t]

z[t_,v_]:=0.5*v*Sin[t/2];

ParametricPlot3D[{x[t,v],y[t,v],z[t,v]},{t,0,2 Pi},

{v,-1,1},PlotPoints->{40,4},Ticks->False]

则输出所求图形(图2.21). 观察所得到的曲面, 理解它是单侧曲面.

空间曲线

例2.17 (教材 例2.12) 作出空间曲线)60(2,sin ,cos π≤≤===t t z t t y t t x 的图形. 输入

ParametricPlot3D[{t*Cos[t],t*Sin[t],2*t,RGBColor[1.0,0,0.5]},{t,0,6 Pi}]则输出所求图形(图

图2.22

例2.18 绘制参数曲线 ???

??===2/cos 2sin t z t y t x 的图形.

输入命令

ParametricPlot3D[{Sin[t],2Cos[t],t.2},{t,0,12}];

则输出所求图形(图

例2.19 绘制参数曲线 ??

?

?

?

??=+==t z t y t x arctan 211cos 2的图形.

输入命令

ParametricPlot3D[{Cos[t]^2,1/(1+2*t),ArcTan[t]},{t,0,8}];则输出所求图形(图2.24).

动画制作

例2.20平面正弦曲线的运动.

输入

Table[Plot[Sin[x+t*Pi],{x,0,6 Pi}],{t,0,2,1/8}]

则作出了16幅具有不同相位的正弦曲线(输出图形略). 双击屏幕上某一幅画, 则可形成动画. 下面是动画的最后一幅图(图2.25).

例2.21 (教材例2.13) 作模拟水波纹运动的动画.

输入调用软件包命令

<

执行后再输入

MoviePlot3D[Sin[Sqrt[x^2+y^2]+t*2*Pi],{x,-8 Pi,8 Pi},{y,-8 Pi,8 Pi},

{t,1,0},PlotPoints->50,AspectRatio->0.5,

ViewPoint->{0.911,-1.682,2.791},Frames->12]

则输出12幅具有不同相位的水面图形, 双击屏幕上任意一幅图, 均可观察动画效果. 下图是第一幅图(图2.26).

图2.26

例2.22 (教材 例2.14) 用动画演示由曲线],0[,sin π∈=z z y 绕z 轴旋转产生旋转曲面的过程. 该曲线绕z 轴旋转所得旋转曲面的方程为,sin 222z y x =+ 其参数方程为])2,0[],,0[(,,sin sin ,cos sin ππ∈∈===u z z z u z y u z x

输入

For[i=1,i<=30,i++,ParametricPlot3D[{Sin[z]*Cos[u],Sin[z]*Sin[u],z},{z,0,Pi},{u,0,2*Pi*i/30},AspectRatio->1,AxesLabel->{"X","Y","Z"}]];则输出连续变化的30幅图形. 双击屏幕上任意一幅图, 均可观察动画效果. 下面是生成旋转曲面的过程中的第23幅图(图2.27).

图2.27

例2.23 将一张薄膜贴在1,0,1,0====y y x x 的方框上, 薄膜振动的函数取为

)

cos()sin()sin()

cos 1)(cos 1(16

),,(22414

1

2

2

2t n m y m x n m n n m t y x u m n ππππππ

+?-+=

∑∑==

其中t 为参数, 作出图形随t 的变动而引起薄膜振动的动画.

初始位置是).0,,(y x u 通过t 的不同值得到多幅画面, 然后将这些图形连续地一张张

显示出来, 即可达到运动的动画效果. 输入命令<

Clear[x,y,t,m,n];

u[x_,y_,t_]:=Sum[16*(1+Cos[n*Pi])*(1-Cos[m*Pi])

*Sin[n*Pi*x]*Sin[m*Pi*y]*Cos[Sqrt[m^2+n^2]*Pi*t] /(m^2*n^2*Pi*2),{m,1,4},{n,1,4}]

Animate[Plot3D[u[x,y,t],{x,0,1},{y,0,1}, PlotRange->{-8,8}],{t,0,1.75,0.25}];

图2.28

实验习题

1.用Plot3D 命令作出函数)33,33(3sin 2cos ≤≤-≤≤--=y x y x z 的图形, 采用选项 PlotPoints->40.

2.作出函数)sin(22y x z +=π的图形.

3.用Plot3D 命令作出函数)sin (cos 228/)(2

2

y x e z y x +=+-在ππππ≤≤-≤≤-y x ,上的图形, 采用选项PlotPoints->60.

4.二元函数22y x xy

z +=在点(0,0) 处不连续, 用Plot3D 命令作出在区域2

2,22≤≤-≤≤-y x 上的图形(采用选项PlotPoints->40).观察曲面在(0,0)附近的变化情况.5.一个环面的参数方程为

),20,20(sin ,sin )cos 3(,cos )cos 3(ππ≤≤≤≤=+=+=v u u z v u y v u x 试用命令ParametricPlot3D 作出它的图形.

6.一个称作正螺面的曲面的参数方程为

).80,11(3/,sin ,cos ≤≤≤≤-===v u v z v u y v u x 试用命令ParametricPlot3D 作出它的图形.

7.用命令Plot3D 作双曲抛物面4

12

2y x z -=,其中1414,66≤≤-≤≤-y x (用选项 BoxRatios->{1,1,1}, PlotPoints->30).

8.用命令ParametricPlot3D 作出圆柱面122=+y x 和圆柱面122=+z x 相交的图形.

9.用命令ParametricPlot3D 作出抛物柱面2y x =和平面1=+z x 相交的图形.

10.用命令ParametricPlot3D 作出圆柱面122=+y x 和圆柱面122=+z x 相交所成的空间曲线 在第一封内的图形.

11.用命令ParametricPlot3D 作出球面22222=++z y x 和柱面1)1(22=+-y x 相交所成的空 间曲线的图形.

立体图形直观图的画法

平面图形直观图的画法 先观察下面的图形,总结投影变化规律。 投影规律: 1.平行性不变;但形状、长度、夹 角会改变; 2.平行直线段或同一直线上的两条 线段的比不变 3.在太阳光下,平行于地面 的直线在地面上的投影长不变 表示空间图形的平面图形,叫做 空间图形的直观图 画空间图形的直观图,一般都要 遵守统一的规则, 1.斜二测画法 我们常用斜二测画法画空间图形及水平放置的平面多边形的直 观图.斜二测画法是一种特殊的平行投影画法. 2.平面图形直观图的画法 斜二测画法的步骤: (1)在已知图形中取互相垂直的x 轴和y 轴,两轴相交于点O .画直观 图时,把它们画成对应的x ′轴和y ′轴,两轴交于点O ′,且使 ∠x ′O ′y ′=_45°(或135°)_,它们确定的平面表示_水平面. (2)已知图形中平行于x 轴或y 轴的线段,在直观图中分别画成_ 平行

于x′轴或y′轴的线段. (3)已知图形中平行于x轴的线段,在直观图中保持原长度不变_,_垂直于x轴的线段,长度为原来的_一半_. 注意点: 1.斜二测画法中的“斜”和“二测”分别指什么? 提示:“斜”是指在已知图形的xOy平面内垂直于x轴的线段,在直观图中均与x′轴成45°或135°;“二测”是指两种度量形式,即在直观图中,平行于x′轴或z′轴的线段长度不变;平行于y′轴的线段长度变为原来的一半。 2.圆的斜二测画法,其图形还是圆吗? 提示:不是圆,是一个压扁了的“圆”,即椭圆。 3.立体图形直观图的画法 由于立体图形与平面图形相比多了一个z轴,因此,用斜二测画法画立体图形的直观图时,图形中平行于x轴、y轴或z轴的线段在直观图中分别画成平行于x′轴、y′轴或z′轴的线段.平行于x轴和z轴的线段,在直观图中长度不变,平行于y轴的线段,长度为原来的一半. 例1.用斜二测画法画水平放置的六边形的直观图 解:

matlab 三维图形绘制实例

三维图形 一. 三维曲线 plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) 其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。当x,y ,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y ,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。 Example1.绘制三维曲线。 程序如下: clf, t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); %向量的乘除幂运算前面要加点 plot3(x,y,z); title('Line in 3-D Space'); xlabel('X');ylabel('Y');zlabel('Z'); grid on; 所的图形如下: -1 1 X Line in 3-D Space Y Z 二. 三维曲面 1. 产生三维数据 在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。

语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。 2. 绘制三维曲面的函数 surf 函数和mesh 函数 example2. 绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下: clf, [x,y]=meshgrid(0:0.25:4*pi); %产生平面坐标区域内的网格坐标矩阵 z=sin(x+sin(y))-x./10; surf(x,y,z); axis([0 4*pi 0 4*pi -2.5 1]); title('surf 函数所产生的曲面'); figure; mesh(x,y ,z); axis([0 4*pi 0 4*pi -2.5 1]); title('mesh 函数所产生的曲面'); -2.5 -2-1.5-1-0.500.51surf 函数所产生的曲面

示意图画法

怎样画示意图题 一、显示空间关系 1.火车长100m ,车头距离桥头200m ,桥长200m ,火车从静止开始以a =1m/s 2的加速度运动,求火车过桥经历的时间。 2.长5.0m 的铁链悬于O 点,O 点下方距离铁链下方15m 处有一个(偏离O 点正下方少许)钉子。求铁链无初速释放后经过钉子的时间是多长?(g 取10m/s ) 3.1999年高考题 在光滑水平面上有一质量m =1.0×10-3 Kg 、电量q =1.0×10-10 C 的带正电小球,静止在O 点。以O 点为原点,在该水平面内建立直角坐标系Oxy 。现突然加一沿x 轴正方向、场强大小E =2.0×106V/m 的匀强电场,使小球开始运动。经过1.0s ,所加电场突然变为沿y 轴正方向,场强大小仍为E =2.0×106 V/s 匀强电场。再经过1.0s ,所加电场又突然变为另一个匀强电场,使小球在此电场作用下经1.0s 速度变为零。求此电场的方向及速度变为零时小球的位置。 4.2006年理综Ⅰ卷第23题 天空有近似等高的浓云层。为了测量云层的高度,在水平地面上与观测者的距离为d =3.0km 处进行一次爆炸,观测者听到由空气直接传来的爆炸声和由云层反射来的爆炸声时间上相差Δt =6.0s 。试估算云层下表面的高度。已知空气中的声速v =1 3 km/s 。 5.2007年理综Ⅰ卷第23题 甲乙两运动员在训练交接棒的过程中发现:甲经短距离加速后能保持9m /s 的速度跑完全程:乙从起跑后到接棒前的运动是匀加速的。为了确定乙起跑的时机,需在接力区前适当的位置设置标记。在某次练习中,甲在接力区前013.5m s =处作了标记,并以9m /s v =的速度跑到此标记时向乙发出起跑口令。乙在接力区的前端听到口令时起跑,并恰好在速度达到与甲相同时被甲追上,完成交接棒,已知接力区的长度为L =20m. 求:(1)此次练习中乙在接棒前的加速度a 。 (2)在完成交接棒时乙离接力区末端的距离. 二、把立体关系转化为平面关系: 6.如图所示,abcd 是一竖直的矩形导线框,线框面积为S ,放在磁感应强度为B 的均匀水平磁场中.ab 边在水平面内且与磁场方向成60?角.则通过导线框的磁通量等于 ( ) (A)BS (B) 12BS (C) 2 2BS (D) 32 BS

生活中的中的几何图形

生活中的平面几何图形 适用年级:初中一年级所属学科:数学 引言: 首先播放一些在我们身边经常接触的为几何图形的物品,询问同学们这些物品有什么特点,由此开始创设情境。 常见的桌面、黑板面、平静的水面等,都给我们以平面的形象。几何里所说的平 面就是从这样的一些物体抽象出来的。但是,几何里的平面是无限延展的。我们作为数 学方向的师范类学生,今天以一名实习教师的身份对生活中的平面几何图形这一北师大 版7年级的教学内容进行探究,本次探究鉴于之前所学的几何图形的相关知识进行深入 探究,目的为让学生通过已经建立的知识结构来进行自主探究,完善关于几何图形的知 识系统。 任务: 为了成功完成这次的探究学习任务,全面认识生活中的平面几何图形,我们要归纳一些主要主题进行探究,做到有的放矢。我们主要对以下主题进行探究: 1.看生活中的几何图形 2.由已建立的知识体系下自主探究本节学习的几何图形 3.熟悉几何图形的性质及应用 要探究以上主题,需要分别从生活、数学等角度探究生活中的平面几何图形,我们需要分别担任生活小组组长、数学小组组长、后勤小组组长、技术小组组长,也就是需要分成四个小组从不同的方面收集、整理和探究。 生活小组:搜寻生活中的平面几何图形、查找关于几何图形在生活中的应用,熟悉教案。 数学小组:以专业知识角度对其他小组的任务内容进行修改。 后勤小组:搜索资料、整合资料。 技术小组:将后勤小组整理好的内容整合为ppt。 请将自己收集到的资料综合整理为演示文稿,以便授课时展示讲演。 资源: 生活: https://www.doczj.com/doc/c711592018.html,/link?url=iHJMGJqjJ4zBBpC8yDF8xDh8vibiAUtaISoEb5kSN NGgO9BzWnQwsgtaACLw6j4Q39iQ https://www.doczj.com/doc/c711592018.html,/view/73af955f804d2b160b4ec082.html https://www.doczj.com/doc/c711592018.html,/?wskm=news&act=show&id=56 数学: https://www.doczj.com/doc/c711592018.html,/t_ja_319760.html

数据结构实验报告-图的遍历

数据结构实验报告 实验:图的遍历 一、实验目的: 1、理解并掌握图的逻辑结构和物理结构——邻接矩阵、邻接表 2、掌握图的构造方法 3、掌握图的邻接矩阵、邻接表存储方式下基本操作的实现算法 4、掌握图的深度优先遍历和广度优先原理 二、实验内容: 1、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接矩阵存储改图。 2、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接表存储该图 3、深度优先遍历第一步中构造的图G,输出得到的节点序列 4、广度优先遍历第一部中构造的图G,输出得到的节点序列 三、实验要求: 1、无向图中的相关信息要从终端以正确的方式输入; 2、具体的输入和输出格式不限; 3、算法要具有较好的健壮性,对错误操作要做适当处理; 4、程序算法作简短的文字注释。 四、程序实现及结果: 1、邻接矩阵: #include #include #define VERTEX_MAX 30 #define MAXSIZE 20 typedef struct { int arcs[VERTEX_MAX][VERTEX_MAX] ; int vexnum,arcnum; } MGraph; void creat_MGraph1(MGraph *g) { int i,j,k; int n,m; printf("请输入顶点数和边数:"); scanf("%d%d",&n,&m); g->vexnum=n; g->arcnum=m; for (i=0;iarcs[i][j]=0;

小学数学空间与图形复习资料

小学数学空间与图形复习资料(二) A、图形的认识 (一)线与角 一、线 1、直线:直线没有端点;长度无限,无法比较长短;过一点可以画无数条直线,过两点只能画一条直线。 2、射线:射线只有一个端点;长度无限,无法比较长短。 3、线段:线段有两个端点,它是直线的一部分;长度有限;两点的连线中线段最短。 4、平行线:在同一平面内,不相交的两条直线叫做平行线。两条平行线间的垂线段长度都相等。 5、垂线:两条直线相交成直角时,这两条直线互相垂直,其中一条直线叫做另一条直线的垂线,相交的点叫做垂足。 点到直线的距离:从直线外一点到这条直线所画的垂线段的长度叫做这点到直线的距离。 二、角 1、角的定义:从一点引出两条射线,所组成的图形叫做角。这个点叫做角的顶点,这两条射线叫做角的边。 2、角的特点:角的大小与角两边的长短无关,与角两边叉开的大小有关。 3、角的分类: 锐角:小于900的角叫做锐角;直角:等于900的角叫做直角;钝角:大于900而小于1800的角叫做钝角。平角:角的两边成一条直线,这时所组成的角叫做平角,平角1800。周角:角的一边旋转一周,与另一边重合,周角是3600。注意:平角不能理解为一条直线,周角不能理解为一条射线。 4、角的度量:量角器中心点与顶点重合,角的一边与量角器的零刻度线重合。即点与点重合,边与边重合的量角方法。看量角器的度数,就需要看刻度线在哪边了。 (二)平面图形 一、长方形特征:对边相等,4个角都是直角的四边形;有2条对称轴。 二、正方形特征:4条边都相等,4个角都是直角的四边形;有4条对称轴。 三、三角形 1、特征:由三条线段围成的图形;三角形两边之和大于第三条边;三角形内角和是180度;三角形具有稳定性;三角形有三条高。 2、分类: (1)按角分锐角三角形:三个角都是锐角。直角三角形:有一个角是直角;等腰直角三角形的两个锐角都为45度,它有1条对称轴。钝角三角形:有一个角是钝角。(2)按边分任意三角形:三条边长度不相等。等腰三角形:有两条边长度相等;两个底角相等;有1条对称轴。等边三角形:三条边长度都相等;三个内角都是60度;有3条对称轴。 四、平行四边形特征:两组对边分别平行,相对的边平行且相等; 五、梯形特征:只有一组对边平行的四边形;等腰梯形有1条对称轴。

数据结构实验---图的储存与遍历

数据结构实验---图的储存与遍历

学号: 姓名: 实验日期: 2016.1.7 实验名称: 图的存贮与遍历 一、实验目的 掌握图这种复杂的非线性结构的邻接矩阵和邻接表的存储表示,以及在此两种常用存储方式下深度优先遍历(DFS)和广度优先遍历(BFS)操作的实现。 二、实验内容与实验步骤 题目1:对以邻接矩阵为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接矩阵为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接矩阵表示,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 题目2:对以邻接表为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接表为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接表存贮,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 V0 V1 V2 V3 V4 三、附录: 在此贴上调试好的程序。 #include #include #include V0 V1 V4 V3 V2 ??? ? ??? ? ????????=010000000101010 1000100010A 1 0 1 0 3 3 4

#define M 100 typedef struct node { char vex[M][2]; int edge[M ][ M ]; int n,e; }Graph; int visited[M]; Graph *Create_Graph() { Graph *GA; int i,j,k,w; GA=(Graph*)malloc(sizeof(Graph)); printf ("请输入矩阵的顶点数和边数(用逗号隔开):\n"); scanf("%d,%d",&GA->n,&GA->e); printf ("请输入矩阵顶点信息:\n"); for(i = 0;in;i++) scanf("%s",&(GA->vex[i][0]),&(GA->vex[i][1])); for (i = 0;in;i++) for (j = 0;jn;j++) GA->edge[i][j] = 0; for (k = 0;ke;k++) { printf ("请输入第%d条边的顶点位置(i,j)和权值(用逗号隔开):",k+1); scanf ("%d,%d,%d",&i,&j,&w); GA->edge[i][j] = w; } return(GA); } void dfs(Graph *GA, int v) { int i; printf("%c%c\n",GA->vex[v][0],GA->vex[v][1]); visited[v]=1;

小学数学总复习空间与图形试题

小学数学总复习空间与 图形试题 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

空间与图形试题精选 一、填空题。 1. 从直线外一点到这条直线可以画无数条线段,其中最短的是和这条直线()的线段。 2. 下图中,∠1=()度,∠2=()度。 1 30 2 3. 一个三角形中,最小的角是46°,按角分类,这个三角形是()三角 形。 4. 右图是三个半径相等的圆组成的图形,它有()条对称轴。 5. 用百分数表示以下阴影部分是整个图形面积的百分之几。 6. 把一个底面直径2分米的圆柱体截去一个高1分米的圆柱体,原来的圆柱体表面积减少()平方分米。 7. “”和“”的周长之比是(),面积之比是()。 8. 右图是由棱长1厘米的小正方体木块搭成的,这个几何体的表面积是 ()平方厘米。至少还需要()块这样的小正方体才能搭成一个 大正方体。 9. 画一个周长厘米的圆,圆规两脚间的距离是()厘米,画成的圆的面 积是()。 10. 下面的小方格边长为1厘米,估一估图①中“福娃”的面积,算一算图②中阴影部分的面积。

11. 一个梯形,上底长a 厘米,下底长b 厘米,高h 厘米。它的面积是( )平方厘米。如果a=b ,那么这个图形就是一个( )形。 12. 在一块边长是20厘米的正方形木板上锯下一个最大的圆,这个圆的面积是( )平方厘米,剩下的边料是( )平方厘米。 13. 将一个大正方体切成大小相同的8个小正方体,每个小正方体的表面积是18平方厘米,原正方体的表面积是( )平方厘米。 14. 5个棱长为30厘米的正方体木箱堆放在墙角(如右图),露在外面的表面积是( )平方厘米。 15. 如下左图,已知大正方形的边长是a 厘米,小正方形的边长是b 厘米。用字母表示阴影部分的面积是( )平方厘米。 二、选择题。 1. 小青坐在教室的第3行第4列,用(4,3)表示,小明坐在教室的第1行第3列应当表示为( )。 A. (1,3) B. (3,1) C. (1,1) D. (3,3) 2. 在同一平面内,画已知直线的垂线,可以画( )。 A. 1条 B. 4条 C. 2条 D. 无数条 3. 用100倍的放大镜看40°的角,这个角的度数是( )度。 A. 4 B. 40 C. 400 D. 4000 4. 下面图形是用木条钉成的支架,最不容易变形的是( )。 D C B A 5. 下列图形中,对称轴条数最多的是( )。

平面几何图形的画法

平面几何图形的画法 按照能否通用,平面几何图形大致可以分为两类:一类是没有具体尺寸要求的相交线、平行线、角、三角形、四边形等等;另一类则是需要符合题目条件与结论,或有严格尺寸要求的图形。无论哪一类,都可以凭借Word页面的“绘图工具”画出来,再利用Windows自带的“画图”程序进行编辑。下面举两例予以说明,敬请同仁赐教。 例1、如图,在三角形纸片ABC中,∠C=90°,∠A=30°,AC=3,折叠该纸片,使点A 与点B重合,折痕与AB,AC分别相交于点D,E,求折痕DE的长。 〖画法〗: 1、点击“插入”→“形状”,选择直线形,插入一条水平直线和一条竖直直线,如图(1); 2、右击直线,选“设置对象格式”,如图(2); 3、在“颜色与线条”里,将两条直线均设置为黑色、0.75磅,如图(3); 4、将水平直线复制成3条,如图(4);

5、右击其中一条水平直线,在“设置对象格式”→“大小”→“旋转”右框内,输入数字“30”,如图(5);这时所选直线顺时针旋转30°,如图(6); 6、再选择一条水平直线,将其顺时针旋转60°,如图(7),图(8); 7、插入一条水平直线,设置为黑色、0.75磅,并顺时针旋转120°,如图(9); 8、按住“Ctrl”键依次点击排列好的每条直线,在“图片工具”里选择“组合”,并且“另存图片”到某个文件夹,如图(10);

9、在Windows自带的“画图”程序中打开图片,如图(11); 10、用“橡皮”工具擦掉图形中多余的部分,如图(12); 11、用“铅笔”工具添加直角符号,并用“铅笔”工具将部分实线改成虚线,如图(13); 12、用“画图”程序中的文本工具给图形各点添加大写字母,如图(14); 13、剪切图片,另存到文件夹,如图(15);

数据结构图的遍历实验报告

实验项目名称:图的遍历 一、实验目的 应用所学的知识分析问题、解决问题,学会用建立图并对其进行遍历,提高实际编程能力及程序调试能力。 二、实验容 问题描述:建立有向图,并用深度优先搜索和广度优先搜素。输入图中节点的个数和边的个数,能够打印出用邻接表或邻接矩阵表示的图的储存结构。 三、实验仪器与设备 计算机,Code::Blocks。 四、实验原理 用邻接表存储一个图,递归方法深度搜索和用队列进行广度搜索,并输出遍历的结果。 五、实验程序及结果 #define INFINITY 10000 /*无穷大*/ #define MAX_VERTEX_NUM 40 #define MAX 40 #include #include #include #include

typedef struct ArCell{ int adj; }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { char name[20]; }infotype; typedef struct { infotype vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum; }MGraph; int LocateVex(MGraph *G,char* v) { int c = -1,i; for(i=0;ivexnum;i++) if(strcmp(v,G->vexs[i].name)==0) { c=i; break;} return c;} MGraph * CreatUDN(MGraph *G)//初始化图,接受用户输入{ int i,j,k,w; char v1[20],v2[20]; printf("请输入图的顶点数,弧数:"); scanf("%d%d",&G->vexnum,&G->arcnum);

matlab空间曲面绘图

空间曲面绘图 (1) 直接绘图-ezmesh 和ezsurf ezmesh 绘制三维网格图,ezsurf 绘制三维表面图。 例1 绘制抛物柱面2x 2z ?=的图形。 指令:ezmesh('2-x^2',[-1,1,-1,1]) 图7.43 指令:ezsurf('2-x^2',[-1,1,-1,1]) 图7.44 例2 绘制)xy sin(z =的图形。 指令:ezmesh('sin(x*y)',[0,4,0,4])

图7.45 例3 绘制马鞍面2y 2x z 2 2?=的图形。 指令:ezmesh('x^2/2-y^2/2') 图7.46 例4 绘制椭圆抛物面22x y 2z +=和抛物柱面2x 2z ?=所围的图形。 ezmesh('2-x^2',[-1,1,-1,1] hold on % 在同一图形窗口中继续绘图 ezmesh('2*y^2+x^2',[-1,1,-1,1]) axis([-1,1,-1,1,0,4])

图7.47 (2) 自定义网格绘图-meshgrid 和mesh/surf 例5 绘制23y x z ?=的图形。 [x,y]=meshgrid(-2:0.2:2,-3:0.1:3) % 自定义网格数据 z=x.^3-y.^2 mesh(x,y,z) 图7.48 surf(x,y,z) 图7.49 contour3(x,y,z,50) %绘制50条三维等高线

图7.50 Contour(x,y,z,40) %绘制40条二维等高线 图7.51 例6 在同一坐标系中绘制23y x z ?=和0z =的图形。 [x,y]=meshgrid(-2:0.2:2,-3:0.1:3) z=x.^3-y.^2 mesh(x,y,z) zz=zeros(size(z)) hold on mesh(x,y,zz)

数据结构实验 - 图的储存与遍历

一、实验目的 掌握图这种复杂的非线性结构的邻接矩阵和邻接表的存储表示,以及在此两种常用存储方式下深度优先遍历(DFS)和广度优先遍历(BFS)操作的实现。 二、实验内容与实验步骤 题目1:对以邻接矩阵为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接矩阵为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接矩阵表示,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 题目2:对以邻接表为存储结构的图进行DFS 和BFS 遍历 问题描述:以邻接表为图的存储结构,实现图的DFS 和BFS 遍历。 基本要求:建立一个图的邻接表存贮,输出顶点的一种DFS 和BFS 序列。 测试数据:如图所示 三、附录: 在此贴上调试好的程序。 #include #include #include ????????????????=010******* 010101000100010A

#define M 100 typedef struct node { char vex[M][2]; int edge[M ][ M ]; int n,e; }Graph; int visited[M]; Graph *Create_Graph() { Graph *GA; int i,j,k,w; GA=(Graph*)malloc(sizeof(Graph)); printf ("请输入矩阵的顶点数和边数(用逗号隔开):\n"); scanf("%d,%d",&GA->n,&GA->e); printf ("请输入矩阵顶点信息:\n"); for(i = 0;in;i++) scanf("%s",&(GA->vex[i][0]),&(GA->vex[i][1])); for (i = 0;in;i++) for (j = 0;jn;j++) GA->edge[i][j] = 0; for (k = 0;ke;k++) { printf ("请输入第%d条边的顶点位置(i,j)和权值(用逗号隔开):",k+1); scanf ("%d,%d,%d",&i,&j,&w); GA->edge[i][j] = w; } return(GA); } void dfs(Graph *GA, int v) { int i; printf("%c%c\n",GA->vex[v][0],GA->vex[v][1]); visited[v]=1;

数据结构实验七图的创建与遍历

实验七图的创建与遍历 实验目的: 通过上机实验进一步掌握图的存储结构及基本操作的实现。 实验内容与要求: 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。算法设计: #include #include #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数#define QUEUE_SIZE (MAX_VEX+1) //队列长度 using namespace std; bool *visited; //访问标志数组 //图的邻接矩阵存储结构 typedef struct{ char *vexs; //顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 }Graph; //队列类 class Queue{ public: void InitQueue() { base=(int *)malloc(QUEUE_SIZE*sizeof(int)); front=rear=0; } void EnQueue(int e) { base[rear]=e; rear=(rear+1)%QUEUE_SIZE; } void DeQueue(int &e) { e=base[front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; }; //图G中查找元素c的位置 int Locate(Graph G,char c) { for(int i=0;i

这样画,你的空间分析图更有逼格

这样画,你的空间分析图更有逼格 上期文章中,我给大家详细讲解了如何做一张漂亮的室内空间分析图。我在上一期文章开头说过,空间分析的样式多样化,而爆炸图只是其中一种,所以在本期中,我将给大家带来另外一种空间分析图的做法。这种图的形式我姑且把它称为轴侧分析图吧。本篇教程过程中与上一期重复的地方我就不再细说了,请参考上一篇文章“室内空间分析图之爆炸分析图”还是按照惯例,先上一张完成后的大图。 1.打开SU 将透视模式调整为平行投影模式,然后我们需要把模型中的一部分墙体拆掉,从而方便露出室内空间。下图中(图1)展示了原始模型(左图)及部分墙体拆除后(右图)的模型样子。

图1 2.导出模型 文件类型为PDF并将其导入Illustrator中,调整线宽到合适的粗细,并删除多余的线段。图2 图2 3.创建相应的图层 这一步不用一步到位,可以在做的过程中不断地根据需求建立不同的图层。这里展示一下我所建立的图层。(图3)

图3 4.完成墙体填色和轮廓描边。(图4) 图4 5.制作细节 这个空间中,电视墙具备可左右移动的特点,所以我要在图中表达出这一设计概念,因此我将电视墙完整的复制出来,并采用虚线的方式放在两侧,用来表达墙体可移动的范围。(图5)

图5 6.加入组合家具特写图 在该图中,餐桌及其一体的收纳柜被墙体所挡住,但该家具是设计点之一,故要在图中有所展示,所以采用引出图的形式在图中右下角展示出来。在SU中设置相同的角度(图6),并导出完成图中右下角的多功能组合家具。(图7) 图6

7.加入动线分析和人物。(图8) 8.加入指引线。(图9)

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

数据结构 图的存储、遍历与应用 源代码

实验四图的存储、遍历与应用姓名:班级: 学号:日期:一、实验目的: 二、实验内容: 三、基本思想,原理和算法描述:

四、源程序: (1)邻接矩阵的存储: #include #include #define INFINITY 10000 //定义最大值无穷大 #define MAX_VERTEX_NUM 20 //最大顶点个数 typedef int AdjMatrix[MAX_VERTEX_NUM ][MAX_VERTEX_NUM ]; typedef struct{ int vexs[MAX_VERTEX_NUM ]; //顶点向量 AdjMatrix arcs; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧或边数 }MGraph; void CreatGragh(MGraph G) //用邻接矩阵构造图 { int i,j,k,w; printf("请输入顶点个数和边数:\n"); scanf("%d %d",&G.vexnum,&G.arcnum); printf("请按顺序输入顶点中间用‘空格’间隔\n"); for(i=0;i #include

数据结构图的遍历实验报告记录

数据结构图的遍历实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

实验报告 课程名:数据结构(C语言版)实验名:图的遍历 姓名: 班级: 学号: 时间:2014.11.15

一实验目的与要求 1. 掌握图的遍历的方法 2. 利用 C 语言实现图的遍历 二实验内容 ?将一个图存储起来 ?对该图分别进行先深和先广遍历 三实验结果与分析 程序: #include #include #define INFINITY 32767 #define MAX_VEX 20 //最大顶点个数 #define QUEUE_SIZE (MAX_VEX+1) //队列长度 //using namespace std; bool *visited; //访问标志数组,避免同一顶点多次访问/****图的邻接矩阵存储结构******/ typedef struct{ char *vexs; //顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum,arcnum; //图的当前顶点数和弧数 }Graph; /*********队列类************/ class Queue{ public: void InitQueue(){ base=(int *)malloc(QUEUE_SIZE*sizeof(int)); front=rear=0; } void EnQueue(int e){ base[rear]=e; rear=(rear+1)%QUEUE_SIZE; } void DeQueue(int &e){ e=base[front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; };

使用matlab绘制三维图形的方法

使用matlab 绘制三维图形的方法 三维曲线 plot3函数与plot 函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n),其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。 例 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z);grid title('Line in 3-D Space'); xlabel('X');ylabel('Y');zlabel('Z'); 如下图: -1 1 X Line in 3-D Space Y Z

三维曲面 1.产生三维数据 在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y); 语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。 2.绘制三维曲面的函数 surf 函数和mesh 函数的调用格式为: mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。 surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。 一般情况下,x,y,z 是维数相同的矩阵。x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。 例 绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下: [x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标 z=sin(x+sin(y))-x/10; mesh(x,y,z); axis([0 4*pi 0 4*pi -2.5 1]); 如下图: -2.5 -2-1.5-1-0.500.51 此外,还有带等高线的三维网格曲面函数meshc 和带底座的三维网格曲面函数meshz 。其用法与mesh 类似,不同的是meshc 还在xy 平面上绘制曲面在z 轴方

数据结构实验五---图的遍历及其应用实现

实验五图的遍历及其应用实现 一、实验目的 1.熟悉图常用的存储结构。 2.掌握在图的邻接矩阵和邻接表两种结构上实现图的两种遍历方法实现。 3.会用图的遍历解决简单的实际问题。 二、实验内容 [题目] :从键盘上输入图的顶点和边的信息,建立图的邻接表存储结构,然后以深度优先搜索和广度优先搜索遍历该图,并输出起对应的遍历序列. 试设计程序实现上述图的类型定义和基本操作,完成上述功能。该程序包括图类型以及每一种操作的具体的函数定义和主函数。 三、实验步骤 (一)、数据结构与核心算法的设计描述: 本实验主要在于图的基本操作,关键是图的两种遍历,仔细分析图的遍历的特点,不难发现,其符合递归的特点,因此可以采用递归的方法遍历。本实验图的存储结构主要采用邻接表,总共分为四个模块:图的创建、位置的查找、深度优先遍历、广度优先遍历。 以下是头文件中数据结构的设计和相关函数的声明: #include #include #include #nclude #define OVERFLOW -2 #define MAX_VERTEX_NUM 50 //最大顶点数 #define MAXQSIZE 100 # define OK 1 typedef int VRType; typedef int InfoType; typedef int QElemType; typedef enum{DG,DN,UDG,UDN}GraphKind; typedef struct ArcNode // 弧结点 { int adjvex; //邻接点域,存放与Vi邻接的点在表头数组中的位置 struct ArcNode *nextarc; //链域指向vi的下一条边或弧的结点, InfoType *info; //定义与弧相关的权值,无权则为0 }ArcNode; typedef struct VNode //表头结点 { char vexdata; //存放顶点信息 struct ArcNode *firstarc; //指示第一个邻接点 }VNode,AdjList[MAX_VERTEX_NUM];

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