欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

processing图片粒子化_个人见到的processing(优质且全的教程,一定看原文)

发布时间:2024/9/19 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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(优质且全的教程,一定看原文)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。