【 * 例 10.7.4 -1 】通过 CameraPosition 设置的不断变化,使地球迎面飞来,贯穿而过,从地球另一面飞离而去。但在整个飞行过程中,相机镜头始终对着地球。
(1)编写三维地球生成程序 earth_zzy.m 函数文件
[earth_zzy.m]
function earth_zzy(ap)
%erath_zyy.m 绘制三维地球
% ap 取 0 时,相机视角采用自动设置;
% 取 1 时,相机视角取缺省值的十分之一 , 因此地球显得较大。
load topo % 装载图象 topo 和相应的图象色图 topomap1
figure( 'colormap' ,topomap1, 'Color' ,[. 8 .8 .8 ]); % 设置图形窗的色图和背景色 <6>
[x,y,z] = sphere(50);
azzy.DataAspectRatio = [1 1 1];azzy.PlotBoxAspectRatioMode = 'auto' ;
fa = axes( 'Visible' , 'off' , azzy); % 设置轴的数据宽高比和坐标框三度比
szzy1.AmbientStrength = 0.1;szzy1.DiffuseStrength = 1;
szzy1.SpecularColorReflectance = .5; szzy1.SpecularExponent = 20;
szzy1.SpecularStrength = 1;
surface(x,y,z,szzy1, 'FaceLighting' , 'phong' , 'FaceColor' , 'texture' , ...
'EdgeColor' , 'none' , 'Cdata' ,topo, 'Parent' ,fa); % 设置面对象 <13>
if ap==1,set(fa, 'CameraViewAngle' ,0.1*get(fa, 'CameraViewAngle' )); end
light( 'position' ,[-1 0 1], 'color' ,[0.5 1 0.5]);
light( 'position' ,[-1.5 0.5 -0.5], 'color' ,[. 6 .2 .2 ]);
light( 'Position' ,[1.5 1.5 -1]);
light( 'Position' ,[0 -1.5 0], 'color' ,[0.6 0.6 1]);
view([-17 26])
(2)运行 erath_zzy 可以画出如下三维地球图 。(在 Notebook 和指令窗中均可运行)

图 10.7.4 -1 三维地球图形
(3)编写飞驰程序 fly_zzy.m 脚本文件
[fly_zzy.m]
%fly_zzy.m 连续改变相机位置,产生贯穿地球的效果
earth_zzy(0) % 调用函数文件,产生三维地球图形。 <2>
set(gca, 'CameraViewAngleMode' , 'manual' ) %<3>
pos=get(gca, 'CameraPosition' ); % 获取相机初始位置
tar=get(gca, 'CameraTarget' ); % 获取相机目标位置
kk=(0:2:40)/15;nk=length(kk); %<6>
for i=1:nk-1
newpos=pos-kk(i)*(pos-tar); % 计算新位置 <8>
set(gca, 'CameraPosition' ,newpos) % 设置相机新位置 <9>
drawnow %<10>
end
(4)在指令窗中运行以下指令 ,就会产生贯穿地球的效果。
fly_zzy
【 * 例 10.7.4 -2 】利用属性 CameraViewAngle 产生飞驰效应。本例也用地球图形演示。在相机视角连续变化下,地球飞离,直到消失。
编写以下 M 脚本文件,并在指令窗中运行。
[fly_zzy2.m]
%fly_zzy2.m 飞离而去的地球消失在远方
earth_zzy(1) % 调用 earth_zzy 函数画地球
set(gca, 'CameraViewAngleMode' , 'manual' )
ang=get(gca, 'CameraViewAngle' ); % 获得当前所用相机视角
kk=(1:50)/50;nk=length(kk);
for i=1:nk
newang=ang+kk(i)*(180-ang); % 使相机视角不断变大
set(gca, 'CameraViewAngle' ,newang) % 设置新视角
drawnow % 迫使 MATLAB 更新屏幕
end

[摘要]针对级进模排样的特点以及人...

您知道全球最小的机器人到底有多小呢。这么小的机器人到底有什么样的法宝呢。中国台湾...

前言 线切割加工通过电极丝与导电工件之间放电腐蚀成型来完成工件加工,由于是非接触加...

冶金装备是技术密集型和资金密集型企业,这些年来,中国冶金装备业快速发展,正是得益...

据测算,“十一五”期间及2020年前中国机械工业年均增速仍将达12%~15%,但机械工业各...