Processing圆圈随鼠标运动

一.案例代码如下:

import processing.pdf.*;

import java.util.Calendar;

boolean savePDF = false;

float tileCount =20;

color circleColor = color(0);

int circleAlpha = 180;

int actRandomSeed =0;

void setup(){

size(600,600);

}

void draw(){

if(savePDF)beginRecord(PDF,timestamp()+".pdf");

translate(width/tileCount/2,height/tileCount/2);

background(255);

smooth();

noFill();

randomSeed(actRandomSeed);

stroke(circleColor,circleAlpha);

strokeWeight(mouseY/60);

for(int gridY=0;gridY<tileCount;gridY++){

for(int gridX=0;gridX<tileCount;gridX++){

float posX=width/tileCount*gridX;

float posY =height/tileCount*gridY;

float shiftX=random(-mouseX,mouseX)/20;

float shiftY=random(-mouseX,mouseX)/20;

ellipse(posX+shiftX,posY+shiftY,mouseY/15,mouseY/15);

}

}

if(savePDF)

{savePDF=false;

endRecord();

}

}

void mousePressed(){

actRandomSeed=(int) random(100000);

}

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("%1ty%1tm%1td_%1tH%1tM%1tS",now);

}

保存并运行如图1

图1

注意:案例中按下大写P或者小写p保存PDF,如果按下大写S或者小写s可以保存PNG。运行时大家可以多动动鼠标,会发现有趣的变化。

相关推荐
桃杬16 小时前
lvgl修改输入设备驱动使其支持鼠标右键、双击、滑轮...
计算机外设
绀目澄清1 天前
unity UGUI 鼠标画线
unity·计算机外设·游戏引擎
沙尘暴炒饭1 天前
前端vue使用canvas封装图片标注功能,鼠标画矩形框,标注文字 包含下载标注之后的图片
前端·vue.js·计算机外设
sukalot2 天前
window显示驱动开发—头戴式和专用显示器
计算机外设
Gz、4 天前
京东京造K2 蓝牙/有线双模键盘键盘快捷键
计算机外设
清风6666664 天前
基于STM32单片机的无线鼠标设计
stm32·单片机·计算机外设·毕业设计·课程设计
feifeigo1234 天前
如何使用CrowPanel ESP32-S3高级HMI显示器来创建一个语音交互聊天机器人
机器人·计算机外设
方圆工作室5 天前
Arduino音乐键盘程序
单片机·嵌入式硬件·计算机外设
Jwest20216 天前
工业显示器在地铁电力监控与运维中的应用
运维·计算机外设
搬砖的小码农_Sky6 天前
常见的显示器接口技术
嵌入式硬件·计算机外设·显示器