找回密码
 注册
Simdroid-非首页
查看: 366|回复: 4

【分享】生成旋转面的matlab程序

[复制链接]
发表于 2009-2-21 23:38:43 | 显示全部楼层 |阅读模式 来自 天津
本帖最后由 messenger 于 2010-8-6 13:54 编辑

今天做课件,需要一个生成旋转面的动画,就编了一个曲线 z=3*(y-2)^2 绕Z 轴旋转生成旋转面的程序,生成的动画见附件,希望对大家有点用。

clear
clc
mov=avifile('xuanzhuanmian4.avi');
y=1:0.01:2;
z=3*(y-2).^2;
x=zeros(size(y));
r=y;
theta=[pi/2,pi/2:pi/10:2.5*pi];
n=length(theta);
plot3(x,y,z,'k','LineWidth',2);
hold on
quiver3(0,0,0,-1,0,0,3,'k','filled','LineWidth',2);
quiver3(0,0,0,0,-1,0,3,'k','filled','LineWidth',2);
quiver3(0,0,0,0,0,1,4,'k','filled','LineWidth',2);
text(0,-0.5,4.2,'Z')
text(0,-3.5,0.3,'Y')
text(-3.5,0,0.3,'X')
axis equal
axis([-2,2,-2,2,0,4])
axis off
for i=1:n-1
    [rr,alpha1]=meshgrid(r,linspace(theta(i),theta(i+1),10));
    zz=repmat(z,10,1);
    xx=rr.*cos(alpha1);
    yy=rr.*sin(alpha1);
    surf(xx,yy,zz);   
    shading interp
    alpha(1)
    drawnow;
    pause(0.8)
    f=getframe(gcf);
    mov=addframe(mov,f);
end
hold off
mov=close(mov);

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

发表于 2009-2-24 14:04:16 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
好东西,非常感谢!
解决了我的问题
回复 不支持

使用道具 举报

发表于 2010-3-20 23:00:00 | 显示全部楼层 来自 陕西西安
终于找到了,学习了
回复 不支持

使用道具 举报

发表于 2013-12-4 19:00:45 | 显示全部楼层 来自 浙江杭州
非常感谢,感谢。
回复 不支持

使用道具 举报

发表于 2013-12-29 15:08:55 | 显示全部楼层 来自 辽宁沈阳
good... it's a good stuff..
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-29 05:41 , Processed in 0.048551 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表