利用Processing实现IOGraphica

来源:互联网 发布:dp地面站软件 编辑:程序博客网 时间:2024/05/22 05:28

1. IOGraphica

IOGraphica是一款将鼠标移动数据可视化的软件,它的可视思路很简单。利用曲线表示鼠标的移动轨迹,用点与圆圈的半径大小来表示鼠标静止时的时间。通过这些简单的组合就可以实现完美的艺术作品。
IOGraphica
Links:http://iographica.com/

2.Processing

选用Processing来实现IOGraphica,是因为Processing提供了灵活的IO监听接口,而其本身就是为艺术设计而生,因此它是实现IOGrahica的不二之选。
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。它是 Java 语言的延伸,并支持许多现有的 Java 语言架构,不过在语法 (syntax) 上简易许多,并具有许多贴心及人性化的设计。
利用Processing可以完成许多有意思并且小而美的东西,它在中国还不够普及,但在国外却被广泛应用在各个领域:可视教育,数据可视化,互动艺术,多媒体艺术等等。
Links:https://processing.org/

3.Processing实现IOGraphica

int preMillis = 0;boolean standing = false;void setup(){  fullScreen();  background(255);}void draw(){  if(pmouseX == mouseX && pmouseY == mouseY){    if(!standing){      preMillis = millis();    }    standing = true;  }else{    if(standing){      int interval = millis() - preMillis;      float radius = map(interval, 0, 10000, 0, height * 0.5);      noStroke();      strokeWeight(1);      fill(255, 150);      ellipseMode(RADIUS);      ellipse(mouseX, mouseY, radius * 2, radius * 2);      fill(0, 150);      ellipse(mouseX, mouseY, radius, radius);    }    standing = false;  }}void mouseMoved(){  stroke(0, 150);  strokeWeight(1);  line(pmouseX, pmouseY, mouseX, mouseY);}void mouseDragged(){  stroke(color(random(255), random(255), random(255)));  strokeWeight(1);  line(pmouseX, pmouseY, mouseX, mouseY);}

亲测效果如下:
Processing with IOGraphica

0 0