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

相关推荐
_李小白5 小时前
【OSG学习笔记】Day 13: 事件处理——响应键盘与鼠标
笔记·学习·计算机外设
AiFlutter21 小时前
低代码平台开发手机USB-HID调试助手
单片机·游戏·计算机外设
cnbestec1 天前
Haply MinVerse触觉3D 鼠标—沉浸式数字操作,助力 3D 设计与仿真
3d·计算机外设·haply·minverse·minverse触觉3d鼠标·前沿科技
补三补四1 天前
操作系统:计算机世界的基石与演进
开发语言·windows·计算机外设
电子科技圈2 天前
XMOS空间音频——在任何设备上都能提供3D沉浸式空间音频且实现更安全地聆听
经验分享·设计模式·性能优化·计算机外设·音视频
剁椒排骨3 天前
win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法
运维·windows·经验分享·计算机外设·win11·win10
iFlyCai3 天前
对Mac文字双击或三击鼠标左键没有任何反应
macos·计算机外设
伊织code3 天前
BongoCat - 跨平台键盘猫动画工具
计算机外设·动画·键盘·bongocat
m0_738355694 天前
护眼-科学使用显示器
计算机外设
xiaowu0805 天前
C# 使用Windows API实现键盘钩子的类
windows·c#·计算机外设