Processing动态交互作品

这篇具有很好参考价值的文章主要介绍了Processing动态交互作品。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一:代码介绍

允许用户输入文本并在屏幕上显示。程序允许用户输入文本并将其显示为逐渐消失的文本元素。在特定时间间隔后,显示的文本将被清除,并且包含了时钟和天数计数器以实现视觉效果。

以下是程序的说明:

1.全局变量:

inputText:存储用户输入的文本。

timer:跟踪清除显示文本的时间间隔。

interval:指定时间间隔的持续时间(3分钟)。

clockTimer:跟踪更新天数计数器的时间间隔。

clockInterval:指定更新时钟显示的时间间隔(1分钟)。

daysCounter:记录天数的计数器。

texts:用于存储TextElement类的实例的ArrayList。

2.setup() 函数:

设置画布大小和字体。

设置文本对齐方式和大小。

初始化 timer 和 clockTimer 变量。

3.draw() 函数:

清除背景并将原点平移至(0, 100)。

调用 drawClock()、drawDaysCounter()、drawTextInputBox() 和 drawTexts() 函数分别显示时钟、天数计数器、文本输入框和文本元素。

在画布底部显示静态消息。

4.drawClock() 函数:

将原点平移至画布中心。

根据当前时间旋转坐标系。

绘制表示时钟指针的线条。

如果时钟间隔已过,则更新 daysCounter。

5.drawDaysCounter() 函数:

构造并显示天数计数器文本框,使用矩形形状。

在文本框内显示当前天数计数。

6.drawTextInputBox() 函数:

构造并显示文本输入框,使用矩形形状。

在框内显示当前输入的文本。

绘制单独的按钮用于提交文本。

7.drawTexts() 函数:

遍历 texts ArrayList,更新和显示每个 TextElement 对象。

如果时间间隔已过,则清除 texts ArrayList 并重置 timer。

8.mousePressed() 函数:

检测鼠标是否按在提交按钮区域。

如果是,则创建一个带有当前输入文本和随机坐标的新 TextElement 对象,并将其添加到 texts ArrayList。

清空输入文本。

9.keyTyped() 函数:

将键入的字符追加到 inputText 变量中,除非它是特殊键(例如 ENTER、RETURN 或 CODED)。

处理 BACKSPACE 键,通过从 inputText 字符串中删除最后一个字符。

10.TextElement 类:

表示具有位置、透明度和起始时间的文本元素。

update() 方法随时间更新透明度。

display() 方法显示当前透明度的文本。

keyPressed() 函数:

以与 keyTyped() 函数类似的方式处理 BACKSPACE 键。

二:相关代码

String inputText = "hello";
int timer;
int interval = 3 * 60 * 1000; // 3 minutes in milliseconds
int clockTimer;
int clockInterval = 60 * 1000; // 1 minute in milliseconds
int daysCounter = 1;
ArrayList<TextElement> texts = new ArrayList<TextElement>();

void setup() {
  size(1200, 800);
  PFont font = createFont("SourceHanSansCN-Regular.otf", 32);
  textFont(font);

  textAlign(CENTER, CENTER);
  textSize(32);
  timer = millis() + interval;
  clockTimer = millis() + clockInterval;
}

void draw() {
  background(255);
  pushMatrix();
  translate(0, 100);
  drawClock();

  popMatrix();
  drawDaysCounter();
  drawTextInputBox();
  drawTexts();
  textSize(20);
  fill(0);
  text("———朋友圈仅三天可见———", width/2, height-100);
}

void drawClock() {
  pushMatrix();
  translate(width / 2, height / 2 - 220);
  rotate(radians((millis() % clockInterval) * 360.0 / clockInterval));
  stroke(0);
  strokeWeight(2);
  line(0, 0, 0, -80);
  popMatrix();
  if (millis() >= clockTimer) {
    daysCounter = (daysCounter + 1) % 4;
    clockTimer = millis() + clockInterval;
  }
}

void drawDaysCounter() {
  String daysText = "天数:" + daysCounter + "天";
  textSize(22);
  fill(255, 102);
  stroke(0);
  strokeWeight(1);
  rectMode(CENTER);
  rect(width / 2, height / 2 - 280, textWidth(daysText) + 20, 30, 7);
  fill(0);
  text(daysText, width / 2, height / 2 - 280);
}

void drawTextInputBox() {
  fill(255, 102);
  stroke(0);
  strokeWeight(1);
  rectMode(CENTER);
  rect(width / 2, height / 2 + 50, 600, 50, 20);
  fill(0);
  text(inputText, width / 2, height / 2 + 50);
  noStroke();
  fill(5, 193, 96);

  strokeWeight(1);
  rect(width / 2 + 400, height / 2 + 50, 100, 50, 10, 10, 10, 10);
  //rect(width / 2 + 352, height / 2 + 50, 100, 50);
  fill(255);
  text("发表", width / 2 + 400, height / 2 + 50);
}

void drawTexts() {
  for (TextElement textElement : texts) {
    textElement.update();
    textElement.display();
  }
  if (millis() >= timer) {
    texts.clear();
    timer = millis() + interval;
  }
}

void mousePressed() {
  if (dist(mouseX, mouseY, width / 2 + 400, height / 2 + 50) < 25) {
    float x = random(50, width - 50);
    float y = random(50, height - 50);
    texts.add(new TextElement(inputText, x, y));
    inputText = "";
  }
}

void keyTyped() {
  if (key != ENTER && key != RETURN && key != CODED) {
    inputText += key;
  }
    if(key== BACKSPACE&& inputText.length() > 0){
     inputText = inputText.substring(0, inputText.length() - 1);
   
  }
 
}

三:图片

processing图像动态处理,个人-程序作品集,java

processing图像动态处理,个人-程序作品集,java

Processing:朋友圈三天可见文章来源地址https://www.toymoban.com/news/detail-764652.html

到了这里,关于Processing动态交互作品的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • processing判断一个点是否在三角形、圆、椭圆、矩形内(超详细鼠标交互)

    刚好最近在学processing,然后有不少同学遇到一个问题哈, 就是如何用processing判断一个点是否在三角形、圆、椭圆、矩形内,并且联合arduino一起,通过串口通信实现用户在processing发生点击事件,然后通过arduino开发板反馈(亮灯等等) ,这一期我就先出如何解决利用processi

    2023年04月10日
    浏览(30)
  • 批处理(Batch Processing)概念

    批处理(Batch Processing)这一概念在不同上下文中可有不同的含义: 传统操作系统层面 : 在早期的操作系统中,批处理是指一种处理模式,用户将一系列作业(job)按照一定的顺序组织起来,提交给操作系统一次性处理。这种模式下,操作系统不与用户交互,而是连续不断地

    2024年03月21日
    浏览(37)
  • 【Mysql】事物处理(TransAction Processing)

      博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: JavaEE初阶 最近在复习mysql,复习到了mysql事物处理(TransAction),帮自己回顾一下,如果你也想了解什么是mysql的事物处理,希望这篇文章会对你有帮助!!!正文开始: 目录 文章目录 一、事物的概念 二、为什么使

    2023年04月18日
    浏览(36)
  • Zynq7020 使用 Video Processing Subsystem 实现图像缩放

    没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下:1:Xilinx的HLS方案,该方案简单,易于实现,但只能用于Xilinx自家的FPGA;2:非纯Verilog方案,大部分代码使用Verilog实现,但中间的fifo或

    2024年01月16日
    浏览(31)
  • unity 后处理 Post-Processing

    window-Packages Manager-Post-Processing-install。 创建Post-Processing Profile文件;新建空游戏物体,并且添加Post Process Volume组件;在相机上添加Post Process Layer组件。   调整亮度   添加了Post Process Volume组件游戏物体、添加Post Process Layer组件的相机的层级都设置为同一个层级,如设置层级为

    2024年02月16日
    浏览(37)
  • 自然语言处理(Natural Language Processing,NLP)

    自然语言处理(Natural Language Processing,NLP)是人工智能领域的一个重要分支,旨在使计算机能够理解、处理和生成人类自然语言。NLP 的目标是让计算机能够像人类一样有效地理解和交流,从而实现更自然、更智能的人机交互。 NLP的理解概括: 文本理解和分析: NLP技术能够从文

    2024年02月14日
    浏览(31)
  • Unity 后处理(Post-Processing) -- (1)概览

            在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。         这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是

    2024年02月06日
    浏览(27)
  • Natural Language Processing自然语言处理(NLP)

       欢迎来到此处,这里是我边学*边 整理 的有关机械学*/深度学*的相关笔记。先前我对这方面的知识不是很了解,笔记整理必然有不妥之处,请见谅并斧正。 目录: 1.Word Vectors(词向量) 2.Neural Classifiers(神经分类器) 3.神经网络和反向传播 4.Dependency Parsing 5.语言模型(LM)和循环神经

    2024年02月08日
    浏览(33)
  • Unity 后处理(Post-Processing) -- (2)创建后处理配置文件

            通过前面一小节,我们初步认识了后处理是什么,在Unity中简单的试了试后处理的效果。本节我们来创建一个我们自己的后处理配置文件(post-processing profile)。         一个后处理配置文件包含了一系列为了达到特定视觉效果的后处理效果的配置。后处理配置文件

    2024年02月09日
    浏览(43)
  • 自然语言处理(Natural Language Processing,NLP)解密

    专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏: Python 专栏: Redis 专栏: TensorFlow 专栏: Logback 专栏: 量子计算: 量子计算 | 解密著名量子算法Shor算法和Grover算法 AI机器学习实战: AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析 AI机器学习 | 基于lib

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包