探索Processing.js草图:网页实验新体验

需积分: 5 0 下载量 191 浏览量 更新于2024-11-02 收藏 2.78MB ZIP 举报
Processing 是一种开源的图形编程语言,旨在让编程更容易,同时为艺术家和设计师提供一种创造互动视觉作品的媒介。Processing.js 利用 HTML5 canvas 元素,为设计师和艺术家提供了一个强大的工具,可以在不需要任何插件的情况下,仅使用标准的 web 技术来创建图形和动画。它支持 Processing 语言的所有特性,并能够运行大量的现有 Processing sketch(草图)。 Processing 语言最初是为视觉艺术设计的,它允许用户使用类似 Java 的语法来快速编写能够生成图形的程序。Processing.js 将这种语言移植到了网页中,使得开发者可以在网页上进行类似的视觉实验。它对于教育领域尤其有用,因为它降低了编程入门的门槛,让学生和教师能够专注于学习编程的基本概念,而不是纠缠于复杂的语法或者配置环境。 使用 Processing.js,开发者可以创建网页上的动态图像、可视化数据、交互式图形和游戏等。它支持多种编程结构,包括函数、循环、条件语句等,并且拥有大量内置函数,用于绘图、颜色处理、数学计算等。此外,它还支持对象和数组,为更复杂的项目提供了结构化的编程能力。 对于想要使用 Processing.js 进行实验的开发者来说,首先需要了解的是 HTML5 canvas 元素的基础知识。Canvas 是 HTML5 提供的一个通过 JavaScript 绘图的原生接口,而 Processing.js 就是基于这个接口来实现图形绘制的。因此,熟悉 canvas API 将有助于开发者更好地利用 Processing.js。 Processing.js 草图(sketches)是用 Processing 编程语言编写的,可以通过 Processing.js 在网页上运行。草图通常包含两个主要函数:`setup()` 和 `draw()`。`setup()` 函数在程序开始时运行一次,用于初始化设置,比如定义窗口大小和背景颜色等。而 `draw()` 函数则会反复运行,用于绘制每一帧图形,如果要制作动态效果,通常在 `draw()` 函数中进行。 由于 Processing.js 是基于 JavaScript 的,这意味着它能够与网页中的其他元素交互。开发者可以在草图中嵌入 HTML 或 CSS,控制页面上的其他元素。同时,Processing.js 草图也可以响应用户的交互,比如鼠标点击或键盘输入,从而创建更丰富的用户交互体验。 学习 Processing.js 的最佳方式是开始尝试一些基础的草图项目,然后逐步深入到更复杂的动画和游戏开发中。有许多在线教程和社区论坛可以提供帮助,开发者可以找到大量的示例代码和项目来学习和参考。 总之,Processing.js 为 web 开发者提供了一个简单而强大的方式来利用 JavaScript 创造视觉艺术和动画。它不仅降低了学习编程的门槛,还为网页提供了动态的视觉内容,提升了用户的互动体验。"

C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:93:16: note: conversion of argument 1 would be ill-formed: C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino:128:18: error: invalid conversion from 'const char*' to 'long long int' [-fpermissive] 128 | Serial.print("%d",sensor[0]); | ^~~~ | | | const char* In file included from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Stream.h:27, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/HardwareSerial.h:32, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Arduino.h:303, from C:\Users\conservator\AppData\Local\Temp\arduino\sketches\304EB848CF381B8A7A8E84D646752A81\sketch\mqttToAliyun.ino.cpp:1: C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:94:16: note: candidate: 'size_t Print::print(long long unsigned int, int)' (near match) 94 | size_t print(unsigned long long, int = DEC); | ^~~~~ C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:94:16: note: conversion of argument 1 would be ill-formed: C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino:128:18: error: invalid conversion from 'const char*' to 'long long unsigned int' [-fpermissive] 128 | Serial.print("%d",sensor[0]); | ^~~~ | | | const char* exit status 1 Compilation error: no matching function for call to 'print(const char [3], int&)'

272 浏览量

C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino: In function 'void get_value()': C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino:128:34: error: no matching function for call to 'println(const char [3], int&)' 128 | Serial.println("%d",sensor[0]); | ^ In file included from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Stream.h:27, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/HardwareSerial.h:32, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Arduino.h:303, from C:\Users\conservator\AppData\Local\Temp\arduino\sketches\304EB848CF381B8A7A8E84D646752A81\sketch\mqttToAliyun.ino.cpp:1: C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:102:16: note: candidate: 'size_t Print::println(unsigned char, int)' (near match) 102 | size_t println(unsigned char, int = DEC); | ^~~~~~~ C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:102:16: note: conversion of argument 1 would be ill-formed: C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino:128:20: error: invalid conversion from 'const char*' to 'unsigned char' [-fpermissive] 128 | Serial.println("%d",sensor[0]); | ^~~~ | | | const char* In file included from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Stream.h:27, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/HardwareSerial.h:32, from C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Arduino.h:303, from C:\Users\conservator\AppData\Local\Temp\arduino\sketches\304EB848CF381B8A7A8E84D646752A81\sketch\mqttToAliyun.ino.cpp:1: C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:103:16: note: candidate: 'size_t Print::println(int, int)' (near match) 103 | size_t println(int, int = DEC); | ^~~~~~~ C:\Users\conservator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/Print.h:103:16: note: conversion of argument 1 would be ill-formed: C:\Users\conservator\Desktop\mqttToAliyun\mqttToAliyun.ino:128:20: error: invalid conversion from 'const char*' to 'int' [-fpermissive] 128 | Serial.println("%d",sensor[0]);

172 浏览量