Processing练习之鼠标控制线段粗细

embedded/2024/9/22 13:55:57/

     案例代码如下:

import processing.pdf.*;
import java.util.Calendar;
boolean savePDF = false;
int tileCount = 20;
int actRandomSeed =0;
int actStrokeCap = ROUND;
void setup(){
size(600,600);
}
void draw(){
if(savePDF)beginRecord(PDF, timestamp()+".pdf");
background(255);
smooth();
noFill();
strokeCap(actStrokeCap);
randomSeed(actRandomSeed);
for (int gridY=0; gridY<tileCount; gridY++)
{
for (int gridX=0; gridX<tileCount; gridX++)
{
int posX = width/tileCount*gridX;
int posY = height/tileCount*gridY;
int toggle =(int)random(0,2);
if(toggle == 0){
strokeWeight(mouseX/20);
line (posX, posY,posX+width/tileCount,posY+height/tileCount);
}
if(toggle == 1){
strokeWeight(mouseY/20);
line(posX, posY+height/tileCount, posX+width/tileCount, posY);
}
}
}
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;
if (key == '1'){
actStrokeCap = ROUND;
}
if (key =='2'){
actStrokeCap= SQUARE;
}
if (key == '3'){
actStrokeCap = PROJECT;
}
}
String timestamp(){
Calendar now= Calendar.getInstance();
return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS",now);
}

        保存并运行如图1

                                图1


http://www.ppmy.cn/embedded/98505.html

相关文章

微前端架构下的单页应用实现策略

随着Web应用的复杂性日益增加&#xff0c;传统的多页应用&#xff08;MPA&#xff09;模式已经难以满足现代Web开发的需求。单页应用&#xff08;SPA&#xff09;以其流畅的用户体验和高效的页面加载速度&#xff0c;逐渐成为Web开发的主流模式。然而&#xff0c;在微前端架构下…

【C++】OJ习题(初阶)

&#x1f680;个人主页&#xff1a;奋斗的小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 &#x1f4a5;1、字符串&#x1f4a5;1.1 字符串相加&#x1f4a5;1.2 验证回文字符串&#x1f4a5;1.3 反转…

OceanMind海睿思入选《2024中国企业数智化转型升级服务全景图/产业图谱》

近日&#xff0c;国内知名数据智能产业创新服务媒体数据猿携手上海大数据联盟发布了《2024中国企业数智化转型升级服务全景图/产业图谱1.0版》。中新赛克海睿思从数千家企业中脱颖而出&#xff0c;成功入选「底层技术服务 - 大数据」细分领域。 在历经数月的时间里&#xff0c;…

CPMF复现笔记(2):训练MVTecAD-3D数据集, 精度SOTA

文章来自曹云康的最新论文《Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection》,在MVTecAD-3D取得了最佳分数。代码地址GitHub - caoyunkang/CPMF: [PR] Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection 复现效果 …

MFC仅让部分控件在UpdateData(FALSE)后更新绑定的变量值

一般在函数DoDataExchange中&#xff0c;我们会将控件与某个变量绑定&#xff0c;然后通过UpdateData(TRUE)可以将控件的值传入绑定的变量&#xff0c;UpdateData(FALSE)将绑定的变量值传出到控件。 假如我们希望在执行UpdateData(FALSE)后&#xff0c;某些变量的值不会被更新到…

突破编程迷宫:分享克服挫折的经验,点亮希望之光

在编程学习的漫长旅程中&#xff0c;每个人都会遇到那些看似无法逾越的障碍&#xff0c;它们如同高耸的墙壁&#xff0c;让人心生畏惧&#xff0c;甚至想要放弃。然而&#xff0c;正是这些挑战塑造了真正的编程高手。他们并非天生就拥有解决所有问题的能力&#xff0c;而是在不…

MYSQL:实用的sql语句编写

前言 干货&#xff0c;长期更新&#xff0c;有异议评论区交流。 注意&#xff1a;所有的sql示例均为虚假的例子&#xff0c;具体语句需要自己根据项目实况编写&#xff01;&#xff01;&#xff01; SQL 1、某一天或几天的数据查询 在 MySQL 中&#xff0c;可以使用 DATE() 函数…

Android 适配器Adapter全面认识notify介绍与使用

一、介绍 在Android开发过程中&#xff0c;Recycleview和Viewpager2使用的评率相对比较高。都是通过数据生成view&#xff0c;然后对view和数据的绑定与更新。常见的开发模式就是适配器。 过于频繁的更新&#xff0c;适配会造成资源额外的开销&#xff0c;如果我们能更好运用…