作者 主题: [ Processing 作品开源 ] sketch_mar01a_2011  (阅读 5200 次)

RavenKwok

  • Sr. Member
  • ****
  • 帖子: 277
  • Artist/ Animator/ Coder/ Cynical Asshole
[ Processing 作品开源 ] sketch_mar01a_2011
« 于: 八月 25, 2011, 07:21:52 下午 »
sketch_mar01a_2011 是我个人已经在openProcessing 社区里开源的Processing 生成作品。

via http://openprocessing.org/visuals/?visualID=30711

http://v.youku.com/v_show/id_XMjgxNjQ4OTUy.html

在这里也贴一下代码,大家对于代码内容若有不解处,可以跟帖提问。 8)

程序代码

int cols, rows;
int cellsize;
float lineThreshold;
Point[][] pts;
float c;
 
void setup() {
  c = 0;
  size(600, 600, P2D);
  frameRate(30);
  smooth();
  cellsize = 30;
  cols = 600/cellsize+1;
  rows = 600/cellsize+1;
  pts = new Point[cols][rows];
  lineThreshold = 45;
  for (int i=0;i<rows;i++) {
    for (int j=0;j<cols;j++) {
      pts[j][i] = new Point(j*cellsize, i*cellsize);
    }
  }
  background(255);
}
void draw() {
  for (int i=0;i<rows;i++) {
    for (int j=0;j<cols;j++) {
      pts[j][i].move();
    }
  }
  for (int i=0;i<rows;i++) {
    for (int j=0;j<cols;j++) {
      for (int k=i;k<rows;k++) {
        for (int l=j;l<cols;l++) {
          float distance = dist(pts[j][i].x, pts[j][i].y, pts[l][k].x, pts[l][k].y);
          if (distance<lineThreshold) {
            strokeWeight(3-distance*3/40);
            stroke(c, 100-distance*100/40);
            line(pts[j][i].x, pts[j][i].y, pts[l][k].x, pts[l][k].y);
          }
        }
      }
    }
  }
  if (c < 200) {
    c += 0.05;
  }else{
    c= 200;
  }
}
 
void keyPressed() {
  if (key == 'r') {
    background(255);
    c = 0;
  }
}

class Point {
  float timeIncrement;
  float range;
  float x,xOrigin,xtime;
  float y,yOrigin,ytime;
  Point(float xOriginInput,float yOriginInput) {
    xOrigin = xOriginInput;
    yOrigin = yOriginInput;
    xtime = random(100);
    ytime = random(100);
    timeIncrement = random(0.005,0.01);
    range = random(100);
  }
  void move() {
    x = xOrigin+(noise(xtime)-0.5)*range;
    y = yOrigin+(noise(ytime)-0.5)*range;
    xtime += timeIncrement;
    ytime += timeIncrement;
  }
}

« 最后编辑时间: 八月 30, 2011, 06:13:09 下午 作者 RavenKwok »

vinjn

  • SuperManager
  • Hero Member
  • *****
  • 帖子: 586
Re: [ Processing 作品开源 ] sketch_mar01a_2011
« 回复 #1 于: 八月 25, 2011, 09:06:11 下午 »
将军的这段简单的代码生成了复杂的共产主义的美

Contra

  • SuperManager
  • Sr. Member
  • *****
  • 帖子: 347
  • AC, game dev, new media art&tech.
    • i'm Contra
Re: [ Processing 作品开源 ] sketch_mar01a_2011
« 回复 #2 于: 八月 25, 2011, 09:22:29 下午 »
对将军头像的崇拜如桃桃江水 :o :o :o
另外这个语法高亮有些扯犊子。。。再换个试试
« 最后编辑时间: 八月 25, 2011, 11:14:09 下午 作者 Contra »

Tags: