Processing利用基本图形制作简单动图

效果图:
在这里插入图片描述

需要用到外部的gifAnimation库,用于导出gif文件,下载好gifAnimation库之后将其解压到速写本所在目录下的libraries下,如图:
在这里插入图片描述
之后重启我们的Processing,在我们菜单栏速写本中出现GifAnimation
在这里插入图片描述
下面直接使用即可,代码如下:

import gifAnimation.*;
GifMaker gif;

float minScale = 0.5; //单个圆最小放大倍数
float maxScale = 4;	//最大放大倍数
float currentScale = 1;//当前图形放大倍数

void setup() {
    size(500,500); //画布大小
    noFill(); //不要填充颜色
    strokeWeight(0.5);//边框粗细
    stroke(250,6,8);//线条颜色,我随便调的
    setup_(); //运行我们生产gif部分的代码
} 
 void draw() {
    background(255); //绘制图案的背景
    translate(100,100);
   
    for(int y = 0;y <= 300; y += 30){
      for(int x = 0; x <= 300; x += 30){
        
        pushMatrix();
        translate(x,y);
        rectMode(CENTER);
        rotate(radians(frameCount));
        currentScale = map(sin((frameCount + (x-y))/60.0),-1,1,minScale,maxScale);
        scale(currentScale);
        ellipse(15,15,10,10);
        popMatrix();
      }
    }
    draw_();
    
} 
void setup_(){
  gif = new GifMaker(this,"gif.gif");
  gif.setRepeat(0);//设置gif重复播放的次数,0为循环播放
  gif.setDelay(40);//设置帧与帧之间的延迟时间,单位为毫秒,数值为40 帧率为25
}
void draw_(){
  if(frameCount % 5 == 0){
    gif.addFrame();//当前帧写入gif内
  }
  if(frameCount == 185)
  gif.finish();
}
void mousePressed(){
  gif.finish();//点击鼠标导出gif
}
 

点击运行,得到如下结果:
在这里插入图片描述
点击一下,在我们的processing文件下找到生成的gif图片
在这里插入图片描述

 
posted @ 2021-05-20 12:59  好的!文西  阅读(1497)  评论(0编辑  收藏  举报