【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

P5.js 为人们带来了富有创造性的编码方式

  • 2014-09-02
  • 本文字数:1518 字

    阅读完需:约 5 分钟

Lauren McCarthy 发布了 P5.js 的第一个公开测试版,它是一个使艺术家、设计师、教育工作者和初学者等都能够进行编码的 JavaScript 库。

P5.js 由 McCarthy 和纽约大学 ITP 以及其他贡献者共同合作开发,它是一个能够处理可视化编程语言的分支,它使非程序开发人员能够编写JavaScript 代码和创建可视化项目。

McCarthy 在 GitHub 的 P5.js 的概述中描述了该库,他说到:

P5.js 有完整的一套画图功能,既可当作画图软件使用,也包括支持与各类页面元素交互的库。然而,开发者没有被限制自己的画布上,他们可以把整个浏览器页面作为自己的素描区域。正因为如此,P5.js 有一个插件库能够使得开发者非常容易地与其它 HTML5 对象(包括文本、输入、视频、网络摄像头和声音)进行交互。

虽然 P5.js 在某些方面有点和 Processing 相似,不过也有一些主要的不同点。McCarthy 在将程序从 Processing 迁移为 P5.js 的说明中列举了他们之间的主要不同点:

  • 因为你可能把你的素描不单单当作绘图的画布,故 size() 方法已经被 createcanvas() 方法取代,以此说明还可以创建其他元素。
  • frameRate(num) 方法用来设置帧速率,但是帧速率变量参数已经废弃,要想获得当前的帧的速率,请在调用 frameRate() 方法不传入参数。
  • JavaScript 并不总是需要同步加载所需文件,有以下几个选项可以处理这样的需求:
    • 所有的加载方法接收一个可选的回调参数,即一个文件被完全加载后被 调用的函数。
    • 或者,开发者可以把加载的调用处理放在预加载方法 preload() 方法中, 该方法会在 setup() 执行前生效。如果预加载方法已经存在,setup 方法 将会等到所有文件被完全加载才执行,请参考这个图片掩盖的实例。

在 Hacker News 上有一个关于 P5.js 的讨论,主题是“ P5.js:当代 Web 的 Processing ”,Scrimmage 的 UI 总工程师 Brad Greenwald 在公告中评论到:

我非常好奇,是什么使得 P5.js 能够比得上甚至优于 D3.js、EaselJS、Three.js、 Raphaël、 KineticJS、Paper.js、Famo.us,或者是 Impact 等类库?我理解它们的特性集并不完全相同,但是我并不明白它有什么可以称得上创新或是令人兴奋的地方。

Wunderman 的市场营销和技术创新部门的高级副总裁 Gui Ambros 回应到:

读 Dan Shiffman 编写的《自然法典》,你就会立刻明白 Processing(和 P5.js)与其他语言或者框架之间的不同。

正如 Arduino 为大家带来了 IoT 和 hardware hacking,同样的,Processing 也以创造性的代码达到了同样的影响力。有很多没有经验的核心开发者正在使用 Processing 创建数据可视化应用、交互装置、游戏和混合声音、视觉、图形的多媒体应用。

P5.js 通过将画布从一个单一的桌面应用扩展到浏览器的方式,开启了 Processing 的强大能力。这是一个很大的进步,此外,Lauren 围绕该项目创建了一个社区,并且做得非常出色。

P5.js 的官网这样描述该库,它是一个保持活跃开发的项目,并表明它是“一个新的解释器、而不是一个模拟器或者接口”,在即将到来的多项新特性中,其中一项是提供“一个正式的编辑环境”。

P5.js 遵循 GNU GPL 协议发布,因为它是一个开源、协作开发的项目,在此期待着 InfoQ 读者以各种方式参与到P5.js 项目中来,包括开发、文档编写或者培训。同时,P5.js 项目也欢迎设计师、艺术家、作家、组织者和其他任何你可以想象到的角色参与到项目中来。在此,期待着任何想为P5.js 做贡献或者想要合作的人发送邮件到 mailto:hello@p5js.orghello@p5js.org

查 **** 看英文原文 P5.js Brings Creative Coding to the Masses


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-02 10:0810142
用户头像

发布了 92 篇内容, 共 44.8 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

干货!Spring Cloud微服务架构进阶,你还不了解的都在这里

Java 程序员 架构 微服务 SpringCloud

架构训练营毕业总结

小卷儿

算法—算法的时间空间复杂度

思想者杰克

HashMap 中的一个“坑”!

王磊

Java hashmap LinkedHashMap

Bash 脚本简介

码语者

bash Shell

CRM WebClient UI的浏览器打印实现

Jerry Wang

JavaScript CRM SAP UI5 JavaScript图表库 11月日更

央行数字货币即将破茧,一场大变局,震撼全球!

CECBC

Eureka 源码之客户端注册

悟空聊架构

Eureka 源码剖析 注册中心 悟空聊架构

20道阿里面试必问JVM面试专题(文末附送答案及JVM学习文档)

编程 程序员 JVM

pygame 小游戏前的准备工作要做足

梦想橡皮擦

11月日更

杂谈——什么是Google Fuchsia ?

思想者杰克

区块链的抽象与演进

CECBC

云知声 Atlas 超算平台: 基于 Fluid + Alluxio 的计算加速实践

阿里巴巴云原生

阿里云 云原生 实践 Fluid Alluxio

新消费:如何度过从0到1的破局期?

石云升

学习笔记 11月日更 新消费

面试必备!阿里内部Java面试八股文出炉,教科书式完美回答

Sakura

Java 程序员 架构 面试

模块七作业

Geek_fc100d

「架构实战营」

王者荣耀商城异地多活架构设计

guangbao

电商秒杀系统

伏波

架构

布局人工智能,银行有的不只是智能客服

CECBC

区块链+农业开启智能化生产时代 解决世界性食品及粮食安全问题

CECBC

架构课毕业总结

伏波

架构

如何在实际场景中使用异常检测?阿里云Prometheus智能检测算子来了

阿里巴巴云原生

阿里云 云原生 Prometheus 异常检测

【死磕Java并发】-----深入分析synchronized的实现原理

chenssy

死磕 Java 死磕 Java 并发

大牛呕心力作——Kafka开发实战,助你徜徉大数据时代

redis 程序员 java编程

SAP CRM和C4C的内容管理(Content Management)

Jerry Wang

内容 CRM C4C 11月日更

赋能优秀传统文化,区块链助力讲好中国故事

CECBC

北鲲云超算平台如何成为就生命科学云计算领域先行者?

北鲲云

十年数据库专家,呕心力作MySQL技术精粹,薪资直涨3K其实很轻松

数据库 程序员 MySQL 数据库

阿里大牛教你如何用Dubbox+SpringBoot+Docker架构,实现双11项目

编程 程序员 springboot

软件架构治理 之 架构混沌之谜

码猿外

架构 软件架构治理

不敢想,做个博客竟如此简单!

程序员鱼皮

博客

P5.js为人们带来了富有创造性的编码方式_开源_James Chesters_InfoQ精选文章