Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.hamoid.*;
- import peasy.*;
- import peasy.org.apache.commons.math.*;
- import peasy.org.apache.commons.math.geometry.*;
- PeasyCam cam;
- VideoExport videoExport;
- ArrayList <Globe> globes = new ArrayList<Globe>();
- float theta;
- int num = 200;
- void setup() {
- size(1920, 1080, P3D);
- background(0);
- for (int i=0; i<num; i++) {
- globes.add(new Globe(PI/num*i));
- }
- cam = new PeasyCam(this, width/2, height/2, 0, 800);
- cam.setMinimumDistance(50);
- cam.setMaximumDistance(1000);
- videoExport = new VideoExport(this, "internetVideo.mp4");
- videoExport.setFrameRate(30);
- videoExport.setQuality(85, 128);
- //videoExport.startMovie();
- frameRate(30);
- }
- void draw() {
- strokeWeight(.9);
- stroke(255, 15);
- lights();
- translate(width/2, height/2, 200);
- rotateY(frameCount/50.0);
- rotateX(frameCount/75.0);
- rotateZ(frameCount/200.0);
- for (Globe gl : globes) {
- gl.update();
- gl.drawSpheres();
- }
- //videoExport.saveFrame();
- //if (frameCount%35==0) saveFrame("image-####.png");
- theta += 0.01;
- }
- void keyPressed() {
- if (key == 'q') {
- videoExport.endMovie();
- exit();
- }
- }
- class Globe {
- float offSet, r, p, t, x, y, z;
- Globe(float _offSet) {
- offSet = _offSet; //
- //offSet = random(TWO_PI);
- }
- void update() {
- r = map(sin(theta+offSet), -1, 1, 100, 300);
- //r = 250;
- p = map(sin(theta+offSet), -1, 1, -PI/2, PI/2);
- t = map(sin(theta+offSet), -1, 1, 0, TWO_PI);
- x = r * sin(p)*cos(t);
- y = r * sin(p)*sin(t);
- z = r * cos(p);
- }
- void drawSpheres() {
- pushMatrix();
- translate(x, y, z);
- noStroke();
- fill(255, 200);
- sphere(10);
- popMatrix();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement