NCF参数化建筑论坛

标题: CA,能用鼠标点击添加细胞 [打印本页]

作者: darklight    时间: 2011-2-28 23:28
标题: CA,能用鼠标点击添加细胞
int sx, sy; float density =0.1; int[][][] world; int d=10; void setup() { size(1000, 600, P2D); frameRate(10); sx = width; sy = height; world = new int[sx][sy][2]; // Set random cells to 'on' for (int i = 0; i < sx * sy * density; i+=d) { world[d*int(random(sx/d))][d*int(random(sy/d))][1] = 1; } } void draw() { background(0); for(int a=5;a 3) && world[x][y][0] == 1) { world[x][y][1] = -1; } } } } // Count the number of adjacent cells 'on' int neighbors(int x, int y) { return world[(x + d) % sx][y][0] + world[x][(y + d) % sy][0] + world[(x + sx - d) % sx][y][0] + world[x][(y + sy - d) % sy][0] + world[(x + d) % sx][(y + d) % sy][0] + world[(x + sx - d) % sx][(y + d) % sy][0] + world[(x + sx - d) % sx][(y + sy - d) % sy][0] + world[(x + d) % sx][(y + sy - d) % sy][0]; } void mouseClicked() { int a=int(mouseX); int b=int(mouseY); if (a%10<=5 && b%10<=5 ){ world[a-a%10][b-b%10][0]=1; } if (a%10<=5 && b%10>5 ){ world[a-a%10][b-b%10+10][0]=1; } if (a%10>5 && b%10<=5 ){ world[a-a%10+10][b-b%10][0]=1; } if (a%10>5 && b%10>5 ){ world[a-a%10+10][b-b%10+10][0]=1; } } [local]1[/local][local]1[/local]
作者: nauygnod    时间: 2011-3-1 17:53
谢谢分享,支持
作者: 麓山小农    时间: 2011-3-1 20:32
能给个截图不 看看到底啥东东 {:3_51:}
作者: tjhzxc    时间: 2011-3-1 23:17
processing
作者: claudemit    时间: 2011-3-2 04:36
我也写过一个CA,效果比较差 没有加入鼠标点击改变状态的设定,鼠标点一下就全部重来了,比较无趣 [attach]15301[/attach] 学习了,谢谢lz
作者: darklight    时间: 2011-3-5 11:21
我也写过一个CA,效果比较差 没有加入鼠标点击改变状态的设定,鼠标点一下就全部重来了,比较无趣 15301 学习了,谢谢lz claudemit 发表于 2011-3-2 04:36
能不能把程序发上来看一下啊。我想改成用鼠标加点,然后空格一下就全部重来,这样比较好玩一些。。。。
作者: yuirei    时间: 2013-11-10 21:59
processiong官网上就有CA的例子,可以添加细胞
作者: 天明2009    时间: 2014-5-27 14:16
看不懂啊,这个是什么啊?




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2