• 回答数

    0

  • 浏览数

    2759

  • 收藏数

    0

作者:洎沫 发表于 2018-12-6 14:20:57
跳转到指定楼层
请教:我想制作一个动画的从屏幕中间不断地生成框,然后不断地变大。
嗯,基本来说,就是一个虚拟远视的软件。
可是,我试了好几个函数,都有些闪烁。怎么办好?谢谢!当然,如果能达成附图那样,能进行颜色渐变更好!
目前我的源代码是:
clc,clear all,close all
%获取屏幕分辨率
scrsz = get(0,'ScreenSize');
set(gcf,'Position',scrsz);
XX=scrsz(3);
XY=scrsz(4);
%
%准备背景
h_main=figure('name','视觉效果','menubar','none','numbertitle','off','position',[0 0 XX XY]);
set(h_main,'WindowKeyPressFcn','close all'); %prss and key close
axis vis3d off %三维坐标修正,关闭坐标轴箭头
% axis off %坐标轴不显示
set(h_main,'color','black') %屏幕背景为黑色

kkk=38; %画线宽度
axis([1 XX 1 XY]); %确定坐标起始数
%**************************
for ii=1:1:XX/2
x1=XX/2+ii;
x2=XX/2-ii;
y1=XY/2+abs(ii*XY/XX);
y2=XY/2-abs(ii*XY/XX);
jj=XX/(kkk*2-1);
mm=abs(ii/jj);
kx=1+abs(mm);
ky=1+abs(mm*XY/XX);
nn=mm;
if ky>kkk;ky=kkk;end
line([x1+nn x2-nn],[y1 y1],'linewidth',ky,'color','w'); %上
line([x2-nn x1+nn],[y2 y2],'linewidth',ky,'color','w'); %下
line([x2 x2],[y1 y2],'linewidth',kx,'color','w'); %左
line([x1 x1],[y1 y2],'linewidth',kx,'color','w'); %右
pause(0.01);
cla;
end

分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录