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。运行时大家可以多动动鼠标,会发现有趣的变化。

相关推荐
sanqima10 小时前
设置鼠标的灵敏度
计算机外设·鼠标灵敏度
TESmart碲视1 天前
解锁多屏办公效率:2026年深度解析EDID技术与KVM切换器解决方案
macos·计算机外设·kvm切换器·tesmart·双屏kvm切换器·tesmart碲视
xwz小王子2 天前
Science Advance 迈向人类分辨率的触觉技术,一种高带宽、高密度、可穿戴的触觉显示器
计算机外设·触觉显示器
SmartRadio2 天前
滚球老鼠标编码器识别上下左右移动方向的原理2
计算机外设
摘星编程3 天前
React Native for OpenHarmony 实战:Keyboard 键盘事件详解
react native·react.js·计算机外设
SmartRadio3 天前
滚球老鼠标DIY改造成游戏光枪完整方案2
网络·游戏·计算机外设
梁下轻语的秋缘3 天前
帧率与刷新率:显卡和显示器的“双向奔赴”,决定画面流畅度的核心逻辑
计算机外设
SmartRadio4 天前
滚球老鼠标DIY改造成游戏光枪完整方案
游戏·计算机外设
SmartRadio4 天前
滚球老鼠标编码器识别上下左右移动方向的原理
计算机外设
mmdd7244 天前
铠侠KIOXIA eMMC实现医疗显示器快速启动
计算机外设·emmc·存储芯片·铠侠