Matlab 版 (精华区)

发信人: zjliu (秋天的萝卜), 信区: Matlab
标  题: [转载]关税14
发信站: 哈工大紫丁香 (Thu Jun 12 21:30:12 2003)

function x=rotcube()

x=[0 1 1 0 0 0 1 1 0 0 NaN 1 1 NaN 1 1 NaN 0 0];
y=[0 0 1 1 0 0 0 1 1 0 NaN 0 0 NaN 1 1 NaN 1 1];
z=[0 0 0 0 0 1 1 1 1 1 NaN 1 0 NaN 0 1 NaN 1 0];
rot_axis=[0 0 1];
rot_org=[0 0 0];

cube_h=plot3(x-0.5,y-0.5,z-0.5);
axis('square');
axis([-1 1 -1 1 -1 1]*2);
view(-37,30);
set(cube_h,'erasemode','background');
rotation_increment=5;
rotation_axis=rot_axis;
rotation_origin=rot_org;

fig_h=gcf;
key='j';
while key~=27
    if waitforbuttonpress==1;
        key=get(fig_h,'currentcharacter');
        switch key
            case 28
           % case 'j'
                rotation_axis=[0 0 1];
                rotation_increment=-5;
            case 29
            %case 'k'
                rotation_axis=[0 0 1];
                rotation_increment=5;
            case 30
            %case 'l'
                rotation_axis=[0 1 0];
                rotation_increment=5;
            case 31
           % case 'i'
                rotation_axis=[0 1 0];
                rotation_increment=-5;
            case 27
                close(fig_h)
                clear
                return
        end
        rotate(cube_h,rotation_axis,...
            rotation_increment,rotation_origin);
        drawnow;
    end
end
x=key

练习
1 如果你用的是笔记本,比如 snowdy之流:),请修改程序,我就不多说了
2 学习waitforbuttonpress的用法
3 学习 get(fig_h,'currentcharacter')的用法
4 玩一下这个程序,看看有没有动起来

--
╔═══════════════════╗
║★★★★★友谊第一  比赛第二★★★★★║
╚═══════════════════╝

※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 202.118.229.92]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:6.572毫秒