第九章句柄图形Word文档格式.docx

上传人:b****3 文档编号:16791583 上传时间:2022-11-26 格式:DOCX 页数:19 大小:319.37KB
下载 相关 举报
第九章句柄图形Word文档格式.docx_第1页
第1页 / 共19页
第九章句柄图形Word文档格式.docx_第2页
第2页 / 共19页
第九章句柄图形Word文档格式.docx_第3页
第3页 / 共19页
第九章句柄图形Word文档格式.docx_第4页
第4页 / 共19页
第九章句柄图形Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第九章句柄图形Word文档格式.docx

《第九章句柄图形Word文档格式.docx》由会员分享,可在线阅读,更多相关《第九章句柄图形Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

第九章句柄图形Word文档格式.docx

1.000099.0010

【例9.2.2.2-2】低层指令绘图,获得句柄;

获取同轴上字对象的句柄和相应对象类型。

(为省篇幅,图形略)

clfreset,t=(0:

100)/100*2*pi;

H_line=line('

Xdata'

t,'

Ydata'

sin(t))text(pi,0.8,'

\fontsize{14}sin(t)'

H_c=get(get(H_line,'

parent'

children'

T=get(H_c,'

Type'

H_line=

99.0011

H_c=

101.0005

T=

'

text'

line'

【例9.2.2.2-3】findobj指令的使用。

(为省篇幅,图形略)clfreset,t=(0:

pi/100:

2*pi)'

;

tt=t*[11];

yy=sin(tt)*diag([0.51]);

plot(tt,yy),Hb=findobj(gca,'

Color'

'

b'

Hb=

99.0012

9.3对象属性的获取和设置

9.3.1创建对象时设置属性

9.3.2get和set

9.3.3对象属性的缺省设置和查询

9.3.4属性查询和设置示例

【例9.3.4-1】创建二维图形时,分别用元胞数组和构架数组设置对象属性。

clfreset,x=0:

pi/12:

2*pi;

PN1={'

'

LineWidth'

Marker'

};

PV1={[100],5,'

d'

plot(sin(x),cos(x),PN1,PV1)axissquareoff

PS.Color=[0.70.70];

PS.LineWidth=2;

line(sin(7*x),cos(7*x),PS);

图9.3-1

【例9.3.4-2】本例演示:

影响line或plot画线时线型和色彩的“父”对象设置。

出于篇幅考虑,本节算例的图形都被删去。

如要观察指令产生的图形,请读者自己运行相应指令。

(1)t=(0:

pi/50:

k=0.4:

0.1:

1;

Y=cos(t)*k;

line(t,Y,'

[100],'

LineStyle'

-.'

)%<

2>

(2)

clfreset

set(gca,'

ColorOrder'

[000;

0.70.70.7],'

-|:

4>

line(t,Y)

(3)

set(gcf,'

DefaultAxesLineStyleOrder'

);

%<

8>

set(gcf,'

DefaultAxesColorOrder'

[100;

001]);

9.4为低层指令绘图准备图/轴

9.4.1'

NextPlot'

属性

9.4.2准备图/轴的简捷指令newplot

9.4.3高层绘图文件的形成

【例9.4.3-1】高层作图函数surf.m文件与底层作图指令surface的关系。

[surf.m]

functionh=surf(varargin)

cax=newplot;

ifnargin==0

error('

Notenoughinputarguments.'

elseifnargin==1

ifmin(size(varargin{1}))==1

Inputargumentmustbeamatrixnotavectororascalar'

else

hh=surface(varargin{1});

end

hh=surface(varargin{:

});

next=lower(get(cax,'

));

if~ishold

view(3)

gridon

ifnargout==1

h=hh;

9.5图形窗的色彩资源和光标属性

9.5.1色彩资源

9.5.2光标指针

9.5.2.1预定义的指针形状

9.5.2.2自定义指针形状

9.6轴对象

9.6.1轴位框的几何属性和多轴位框

9.6.2图形名和坐标轴名的句柄操作

9.6.3轴刻度的属性控制

9.6.4坐标轴尺度、方向、位置属性

9.6.5照相机属性

9.7句柄图形应用专题

9.7.1光标形状的自制

【例9.7.1-1】自制光标指针形状

(1)

bdw=0.01;

tpw=0.15;

pos=[1/2+bdw,2/3+bdw,1/2-2*bdw,1/3-bdw-tpw];

3>

figure('

Units'

normalized'

Position'

pos,'

[0.9,0.65,0])

%<

Name'

试验窗'

5>

(2)步骤一:

步骤二:

P=ones(16,16)*NaN;

P(1,5)=1;

P(2:

14,4)=1;

P(15,5)=1;

P(16,6:

11)=1;

P(15,12)=1;

P(9:

14,13)=1;

9,6)=1;

P(9,7)=1;

P(8,8)=1;

P(9,9)=1;

P(8,10)=1;

P(9,11)=1;

P(8,12)=1;

14,5)=2;

P(10:

15,6:

11)=2;

P(9,8)=2;

P(9,10)=2;

14,12)=2;

Pointer'

Custom'

PointerShapeCData'

P,'

PointerShapeHotSpot'

[2,5])

9.7.2任意布置子图和轴外注释

【例9.7.2-1】本例演示:

axes轴位框设计、rectangle的运用、及轴外注释。

所谓轴外注释,实际上是使用了两个轴位框。

一个轴位框充满全部图形窗,其坐标框被隐去,而只写注释文字。

而另一个比较小的轴位框用于绘图。

这样从外表看去,注释就处于那小轴位框的外部。

clfzeta2=[0.20.40.60.81.0];

n=length(zeta2);

fork=1:

n;

Num{k,1}=1;

Den{k,1}=[12*zeta2(k)1];

endS=tf(Num,Den);

t=(0:

0.4:

20)'

[Y,x]=step(S,t);

tt=t*ones(size(zeta2));

%

clfreset,H=axes('

[0,0,1,1],'

Visible'

off'

%

11>

15>

18>

19>

24>

27>

str{1}='

\fontname{隶书}二阶系统阶跃响应'

str{2}='

y(t)=1-\beta^{-1}e^{-\zetat}sin(\betat+\theta)'

str{3}='

'

str{4}='

\fontname{隶书}其中:

str{5}='

\beta=(1-\zeta^{2})^{0.5}'

str{6}='

\theta=arctg(\beta/\zeta)'

str{7}='

\zeta=.2,.4,.6,.8,1'

set(gcf,'

CurrentAxes'

H)

text(0.01,0.73,str,'

FontSize'

12)h1=axes('

[0.45,0.45,0.5,0.5]);

ribbon(tt,Y,0.4)

%set(h1,'

XTickLabelMode'

manual'

XTickLabel'

0|0.4|0.8|1.2'

23>

set(h1,'

ZTickLabel'

0|1.0|2.0'

set(get(h1,'

XLabel'

String'

\zeta\rightarrow'

Rotation'

17.5)set(get(h1,'

YLabel'

\leftarrowt'

-25)set(get(h1,'

Zlabel'

y\rightarrow'

)h2=axes('

[0.03,0.08,0.27,0.27]);

plot(tt,Y)%

h3=axes('

[0.37,0.04,0.63,0.32]);

set(h3,'

Xlim'

[0,1.2],'

Ylim'

[0,0.5])%

DataAspectRatio'

[111])%

[0,0,0])%

)%hh1=rectangle('

[0.5,0.2,0.4,0.2],'

Curvature'

[0,0]);

%<

37>

hh2=rectangle('

[0.2,0.26,0.08,0.08],'

[1,1]);

38>

xx1=0.05:

0.01:

0.2;

xx2=0.28:

0.02:

0.5;

xx3=0.9:

1.1;

xx4=0.24:

yy5=0.1:

0.26;

yy6=0.1:

0.3;

yy1=0.3*ones(size(xx1));

yy2=0.3*ones(size(xx2));

yy3=0.3*ones(size(xx3));

yy4=0.1*ones(size(xx4));

xx5=0.24*ones(size(yy5));

xx6=ones(size(yy6));

line(xx1,yy1);

line(xx2,yy2);

line(xx3,yy3);

line(xx4,yy4);

line(xx5,yy5);

line(xx6,yy6)line(0.17,0.3,'

>

MarkerFaceColor'

k'

)line(0.47,0.3,'

)line(1.1,0.3,'

)line(0.24,0.23,'

^'

line(0.17,0.35,'

+'

)text(0.27,0.23,'

-'

)text(0.05,0.35,'

u(t)'

)text(1,0.35,'

y(t)'

)text(0.6,0.26,'

s{^2}+2{\zeta}s'

xx7=0.56:

0.84;

yy7=0.3*ones(size(xx7));

line(xx7,yy7)text(0.68,0.35,'

1'

图9.7-3

二阶系统阶跃响应

1.0

-1-zt

y(t)=1-

其中:

b-1e-ztsin(

bt+q)

b=(1-

20.5z)

?

2.0

q=arctg(

b/z)

z=.2,.4,

.6,.8,1

20

y(t)

-

2

s+2zs

9.7.3制作个性化双坐标系

【例9.7.3-1】制作一个双坐标系用来表现高压和低温两个不同量的过渡过程。

tp=(0:

100)/100*5;

yp=8+4*(1-exp(-0.8*tp).*cos(3*tp));

tt=(0:

500)/500*40;

yt=120+40*(1-exp(-0.05*tt).*cos(tt));

clfreset,h_ap=axes('

[0.13,0.13,0.7,0.75]);

set(h_ap,'

Xcolor'

Ycolor'

[0,5],'

[0,15]);

nx=10;

ny=6;

pxtick=0:

((5-0)/nx):

5;

pytick=0:

((15-0)/ny):

15;

Xtick'

pxtick,'

Ytick'

pytick,'

Xgrid'

on'

Ygrid'

)h_linet=line(tp,yp,'

set(get(h_ap,'

Xlabel'

set(get(h_ap,'

Ylabel'

h_at=axes('

get(h_ap,'

));

set(h_at,'

none'

r'

set(h_at,'

Xaxislocation'

top'

)set(h_at,'

Yaxislocation'

right'

Ydir'

rev'

)set(get(h_at,'

\fontsize{15}\fontname{\rightarrow(分)'

\fontname{隶书}零下温度'

[0,210])line(tt,yt,'

h_at)

时间\rightarrow(分)'

)压力\rightarrow(\times10^{5}Pa)'

({\circ}C)\fontsize{15}

6>

7>

9>

12>

13>

14>

}时间

\leftarrow

 

21>

22>

00.5

11.522.533.544.5

xpm=get(h_at,'

txtick=xpm

(1):

((xpm

(2)-xpm

(1))/nx):

xpm

(2);

tytick=0:

((210-0)/ny):

210;

txtick,'

tytick)

度温下零?

)C

004

210

5

时时?

时时时

图9.7-4

9.7.4连续变焦和飞驰图形

【例9.7.4-1】通过CameraPosition设置的不断变化,使地球迎面飞来,贯穿而过,从地球另一面飞离而去。

但在整个飞行过程中,相机镜头始终对着地球。

[earth_zzy.m]

functionearth_zzy(ap)

%erath_zyy.m

%loadtopo

figure('

colormap'

topomap1,'

[.8.8.8]);

%<

[x,y,z]=sphere(50);

spectRatio=[111];

oxAspectRatioMode='

auto'

;

fa=axes('

'

azzy);

ntStrength=0.1;

seStrength=1;

larColorReflectance=.5;

larExponent=20;

larStrength=1;

FaceLighting'

phong'

FaceColor'

texture'

view([-1726])

(2)earth_zzy(0)

[fly_zzy.m]

10>

%fly_zzy.mearth_zzy(0)set(gca,'

CameraViewAngleMode'

)pos=get(gca,'

CameraPosition'

);

tar=get(gca,'

CameraTarget'

kk=(0:

2:

40)/15;

nk=length(kk);

fori=1:

nk-1

newpos=pos-kk(i)*(pos-tar);

set(gca,'

newpos)drawnow

4)

fly_zzy

【例9.7.4-2】利用属性CameraViewAngle产生飞驰效应。

本例也用地球图形演示。

在相机视角连续变化下,地球飞离,直到消失。

[fly_zzy2.m]

%fly_zzy2.mearth_zzy

(1)set(gca,'

)ang=get(gca,'

CameraViewAngle'

kk=(1:

50)/50;

nknewang=ang+kk(i)*(180-ang);

set(gca,'

newang)drawnow

9.7.5实时动画

9.7.5.1擦除属性'

EraseMode'

9.7.5.2屏幕刷新指令drawnow

9.7.5.3动画制作示例

【例9.7.5.3-1】制作红色小球沿一条带封闭路径的下旋螺线运动的实时动画。

[anim_zzy1.m]

functionf=anim_zzy1(K,ki)

%anim_zzy1.m

%t1=(0:

1000)/1000*10*pi;

x1=cos(t1);

y1=sin(t1);

z1=-t1;

t2=(0:

10)/10;

x2=x1(end)*(1-t2);

y2=y1(end)*(1-t2);

z2=z1(end)*ones(size(x2));

t3=t2;

z3=(1-t3)*z1(end);

x3=zeros(size(z3));

y3=x3;

t4=t2;

x4=t4;

y4=zeros(size(x4));

z4=y4;

x=[x1x2x3x4];

y=[y1y2y3y4];

z=[z1z2z3z4];

plot3(x,y,z,'

),axisoff

xor'

h=line('

[100],'

.'

MarkerSize'

40,'

n=length(x);

i=1;

j=1;

while1

set(h,'

xdata'

x(i),'

ydata'

y(i),

zdata'

z(i));

drawnow;

<

pause(0.0005)

i=i+1;

ifnargin==2&

nargout==1

if(i==ki&

j==1);

f=getframe(gcf);

25>

ifi>

n

j=j+1;

ifj>

K;

break;

endendend

(2)f=anim_zzy1(2,450);

(3)image(f.cdata),axisoff

图9.7-6

9.7.6surface指令衍生不同曲面

【例9.7.6-1】演示高层指令mesh,surf等指令是如何由surface衍生而得。

clfreset,t=(0:

20)/20;

r=2.5-cos(2*pi*t);

[x,y,z]=cylinder(r,40);

fc=get(gca,'

color'

h=surface(x,y,z,'

fc,'

EdgeColor'

flat'

EdgeLighting'

view(3);

gridon;

axisoff

图9.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1