案例代码如下:
import processing.pdf.*;
 import java.util.Calendar;
boolean savePDF = false;
  
 int maxCount = 5000;
 int currentCount = 1;
 float[] x=new float[maxCount];
 float[] y=new float[maxCount];
 float[] r=new float[maxCount];
void setup(){
   size(600,600);
   smooth();
   frameRate(10);
   x[0] = width/2;
   y[0] = height/2;
   r[0] = 10;
   }
    void draw(){
      if(savePDF)beginRecord(PDF,timestamp()+".pdf");
      background(255);
      strokeWeight(0.5);
       float newR = random(1,7);
       float newX = random(0+newR,width-newR);
       float newY = random(0+newR,height-newR);
       float closestDist = 100000000;
       int closestIndex =0;
      for(int i=0;i<currentCount;i++){
      float newDist = dist(newX,newY,x[i],y[i]);
      if(newDist <closestDist){
       closestDist =newDist;
       closestIndex=i;
   }
      }
      float angle =atan2(newY-y[closestIndex],newX-x[closestIndex]);
      x[currentCount] =x[closestIndex]+cos(angle)*(r[closestIndex]+newR);
      y[currentCount] =y[closestIndex]+sin(angle)*(r[closestIndex]+newR);
      r[currentCount] = newR;
      currentCount++;
      for(int i=0;i<currentCount;i++){
        fill(50);
        ellipse(x[i],y[i],r[i]*2,r[i]*2);
      }
      if(currentCount++>=maxCount) noLoop();
      if(savePDF){
        savePDF =false;
       endShape();
      }
  }
  
    void keyReleased(){
      if(key=='s'||key=='S') saveFrame(timestamp()+"_##.png");
      if(key=='p'||key=='P') savePDF=true;
    }
  String timestamp(){
   Calendar now=Calendar.getInstance();
   return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS",now);
 }
保存并运行如图1

图1








![[Meachines] [Medium] solidstate Apache JAMES RCE+POP3邮件泄露+定时任务权限提升](https://img-blog.csdnimg.cn/img_convert/7d4354cb1bcf768634351e34e9d8bcdb.jpeg)










