processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)
这个教程的一个好处是,还会介绍一些常用的库.
不介绍每个函数, ellipse, box 的参数, 很适合有程序经验的同学.
多个文件之间,想当于直接把多个文件放在一起执行.
同一个project 里面,不需要import
for (int i=0;i<20;i++) {
for (int j=0;j<20;j++) {
if (i<10) {
fill(255, 0, 0);
}else{
fill(255, 255, 0);
}
ellipse(i*20, j*20, 20, 20);
}
}
函数可以写在函数里面.
Ball myBall;
void setup() {
size(600, 600);
background(0);
myBall = new Ball(500, 100);
}
void draw()
{
myBall.display();
}
class Ball{
int x = 500;
int y = 500;
Ball(int x, int y){
this.x = x;
this.y = y;
}
void display(){
ellipse(x, y, 20, 20);
}
}
这就是我当年在文曲星上写的啊.. 当时我还加了阻力.
void bounce() {
if (x>width || x < 0) {
speedX *= -1;
}
if (y >height || y<0) {
speedY *= -1;
}
}
void gravity(){
speedY += 0.2;
}
Ball[] balls = new Ball[20];
for (int i=0;i
balls[i] = new Ball(random(0, width), random(0, height), 5, 5);
}
发现和Java几乎一样, 不过Java 几乎都忘了.
不需要范型. 哈哈:
ArrayList myList;
mylist.add(new Ball(200, 200));
mylist.size();
mylist.get(1);
放在 sketchbook 的libraries 下:
(ENV)ning@ning-laptop ~/idning/langtest/processing/sketchbook/libraries$ ll
total 32K
5022553 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 verletphysics
5022577 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 volumeutils
5022429 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 audioutils
5022441 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 colorutils
5022457 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 datautils
5022470 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 simutils
5022505 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 toxiclibscore
5022495 drwx------ 5 ning ning 4.0K 2013-03-09 11:29 toxiclibs_p5
重启processing.
我们可以通过 $ cp -r libraries/ libs2 把libraries 当成一个sketch 浏览.
看它的例子:
一个 Vec 表示一个点. (有x, y, z)
toxi 库里面的:
Vec3D loc = new Voc3D(0, 0, 0);
ellipse(loc.x, loc.y, 20, 20);
Vec3D speed = new Voc3D(1, 0, 0);
可以加减:
loc.addSelf(speed);
loc.normalize(); //变成1.
loc.scaleSelf(100); //乘以100.
注意, 向量加法(平行四边形)
Vec3D newVec = loc.add(speed) ; 不一样. 产生一个新的vec.
全局变量, 不分文件.
这是一个稍微复杂的 粒子模型. 可以模拟扩散, 聚合. (应该不是按照物理规律的.)
PeasyCam
不兼容Processing 2.0
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
The default values are camera(width/2.0, height/2.0, (height/2.0) / tan(PI*30.0 / 180.0), width/2.0, height/2.0, 0, 0, 1, 0)
实现鼠标控制的Cam, 很好.
A mouse driven camera-control library for 3D sketches.
提供 滑块 等元素
这个我在flash 做过.
这个3d图不错.
PrintWriter output;
output = createWrite("data/points.csv");
if (keyPressed) {
for (int i=0; i
for (int j=0; j
Vec3D loc = grid[i][j].loc;
output.println(loc.x + "," + loc.y + "," + loc.z);
}
}
output.flush();
output.close();
}
注意单引号,双引号不同.
这也是我从前用Flash 搞过 .
它用的是 toxi 的VerletPhyiscs 库.
verlet
VerletParticle. 粒子.
VerletSpring. 弹簧.
GravityBehavior()
比Processing 编辑器好.
proclipsing, 它是用java 来的:
package eclipseprocessingprj;
import processing.core.PApplet;
public class EclipseProcessingPrj extends PApplet {
public void setup() {
size(600, 600);
}
public void draw() {
background(0);
stroke(255, 0, 0);
fill(255);
ellipse(mouseX, mouseY, 15, 15);
}
public static void main(String _args[]) {
PApplet.main(new String[] { eclipseprocessingprj.EclipseProcessingPrj.class.getName() });
}
}
原来, size, background, stroke, fill 等等都是PApplet 类的方法.
processing 就是一个完整彻底的java, 它每次把写的代码包在一个.java 里面去run 就行了.
所以在Eclipse 里面能够有完整的代码提示. 错误检查
不过用Class 的方法略有不同.(在Processing 环境里面是把所有代码合在一起包在 PApplet 里面.)
总结
以上是生活随笔为你收集整理的processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 奇迹mu觉醒大天使武器怎么获得
- 下一篇: cbow word2vec 损失_Ski