文档

动画一个表面

这个例子展示了如何动画一个表面。具体来说,这个例子动画一个球谐。球谐是傅立叶级数的球面版本,可以用来模拟地球的自由振动。

定义球形网格

在球面网格上定义一组点来计算谐波。

θ= 0:π/ 40:π;%极角φ= 0:π/ 20:2 *π;%方位角(φ,θ)= meshgrid(φ,θ);定义网格

计算球谐

在半径为5的球面上,计算6度,1阶,振幅为0.5的球面谐波。然后,将值转换为笛卡尔坐标。

度= 6;= 1;幅值= 0.5;半径= 5;Ymn =勒让德(学位,因为(θ(:1)));Ymn = Ymn(订单+ 1:)';yy = Ymn;kk = 2: size(theta,1) yy = [yy Ymn];结束yy = yy。* cos(订单*φ);订单= max (max (abs (yy)));Rho =半径+振幅*yy/阶数;r =ρ。* sin(θ);%转换为笛卡尔坐标x = r。* cos(φ);y = r。* sin(φ);z =ρ。* cos(θ);

在球面上绘制球谐曲线

使用冲浪函数,在球面上绘制球谐曲线。

图s = surf(x,y,z);光%加灯照明高洛德%偏好弯曲表面的照明平等的设置轴相等并删除轴视图(40岁,30)%设置的观点camzoom (1.5)%放大到场景

动画的表面

要使表面产生动画效果,请使用for循环更改图中的数据。若要替换表面数据,请设置XDataYData,ZData属性的表面,以新的值。要控制动画的速度,请使用暂停更新地面数据后。

Scale = [linspace(0,1,20) linspace(1,-1,40)];%表面缩放(0至1至-1)Ii = 1:长度(比例)rho =半径+比例(Ii)*振幅*yy/阶;r =ρ。* sin(θ);x = r。* cos(φ);y = r。* sin(φ);z =ρ。* cos(θ);s.XData = x;%替换曲面x值s.YData = y;%替换表面y值s.ZData = z;%替换表面z值暂停(0.05)%暂停来控制动画速度结束

版权所有The MathWorks, Inc.

这个话题有用吗?