Processing.js和P5.js的功能简介和区别

techbrood 发表于 2016-05-18 13:05:24

标签: processing, p5, 教程, 实例

- +
什么是Processing

Processing是关于数字艺术的编程语言,支持跨平台,语言本身是一个类Java语言,程序文件的后缀为.pde。

什么是Processing.js

为了能让Processing的代码能在Web上工作,John Resig开发了Processing.js,

该JS开发库用来完成两个方面的任务:

  1. 能把Processing语言动态转换成JS,从而在Web环境中执行;

  2. 提供了一套完整的2D图形处理接口(API),直接以JS语言来编程。

显然其最实用的地方是能直接利用现有的大量Processing代码。

什么是P5.js

P5是Processing语言的一个JS移植版本,使其能在Web中工作。它完全使用JavaScript来实现Processing语言相同的功能,但并不会动态翻译Processing语言代码,这一点和Processing.js不同。也就是P5.js差不多等同于Processing.js的JS API部分。但P5.js的功能更单一,角色更专注,且也是Processing基金会唯一支持的项目。


所以,对我而言,如果你想利用已有的Processing(java)代码,你可以使用Processing.js。如果你想直接使用JS创建一些艺术作品(如基本的几何图形、图像处理、交互式动画和操作DOM等),那么推荐使用P5.js。

下面给出两个在线实例,以方便你更直观的了解其使用方式:

例1:使用Processing.js加载和绘制图像

PImage a;  // Declare variable "a" of type PImage
void setup() {
    noLoop(); // rather than drawing as an animation, only call draw() once
    size(200, 200);
    // Load the images for use in the sketch 
    a = loadImage("/uploads/160501/moon.png"); 
} 

void draw() {
image(a, 0, 0); // Display the image at point (0,0) with natural width and height 
    // Display the image again, this time starting at (width/2, 0), 
    // and scaled to 50% in both x and y direction
    image(a, width/2, 0, a.width/2, a.height/2);  
}

例2:使用P5.js加载和绘制图像

var img; // Declare variable 'img'.

function setup() {
    createCanvas(680, 480);
    img = loadImage("/uploads/160501/moon.png"); // Load the image
}

function draw() {
    // Displays the image at its actual size at point (0,0)
    image(img, 0, 0);
    // Displays the image at point (0, height/2) at half size
    image(img, 0, height / 2, img.width / 2, img.height / 2);
}

2016.05.18                      

possitive(19) views25383 comments1

发送私信

最新评论

寻觅良药ˇ 2017-01-17 16:44:07

一般的论坛能不能用
我的论坛站
www.mccake.net


请先 登录 再评论.
相关文章
  • WebGL、Asm.js和WebAssembly概念简介

    随着HTML技术的发展,网页要解决的问题已经远不止是简单的文本信息,而包括了更多的高性能图像处理和3D渲染方面。这正是要引入WebGL、Asm.js和WebAssembly这些技...

  • 前端开发框架技术选型:Angular2 VS React VS jQuery

    Angular和React是主流的2个前端开发框架,但是严格来说两者并非对等的概念。Angular是一个基于MVC(或者MVVM)的框架,包含model(模型)/view(视图)/controll...

  • 使用HTML5 FileReader和Canvas压缩用户上传的图片

    手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力。因此在某些应用下(对图片要求不那么高)我们可以在客户端来压缩图片,然后再提交给服务器。总体...

  • 使用HTML5 Canvas实现的界面元素截屏功能

    如果网站出现问题,常常需要截图来提交反馈,这个功能很实用。使用HTML5的Canvas可以实现这个目标。我们首先引入

  • 计算WebGL中的uniforms变量使用数

    在使用Three.js为人体模型加载皮肤材料时,启用了skinning:true的参数。有时候会导致GL编译错误,提示“too many uniforms”。下面的文章有助于理解错误原因和检...

  • WebGL 纹理映射模式以及WRAP_S | WRAP_T参数详解

    我们在纹理滤镜一文中已经说明了2个重要的纹理参数,用来定义对象缩放时纹理的处理方式:GL_TEXTURE_MIN_FILTERGL_TEXTURE_MAG_FILTER本文讲解其余几个纹理参数...

  • 如何使用WebGL实现空气高温热变形动画特效

    我们在炎炎夏日,或者在火堆旁,经常会观察到热源周围空气的不稳定波动现象。本文将讲解如何通过WebGL来实现这个特效。该效果可用于热变形、波浪、水面波光等场...

  • D3.js读取外部json数据

    D3.js是一个很好的数据可视化工具,支持从web服务读取json数据,或者从外部文件如.json, .csv文件中直接读取。由于部分服务比如flickrs上的图文数据服务需要VPN...

  • Three.js 开发基础知识 - 绘制3D对象

    Three.js是一个用来简化WebGL开发的JavaScript库,比如绘制一个三维立方体,使用WebGL需要100多行,那Three.js只要10几行就能够完成。本文通过创建一个立方体来...

  • 更多...