import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.zip.*; import netscape.javascript.*; import javax.comm.*; import javax.sound.midi.*; import javax.sound.midi.spi.*; import javax.sound.sampled.*; import javax.sound.sampled.spi.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.sax.*; import javax.xml.transform.stream.*; import org.xml.sax.*; import org.xml.sax.ext.*; import org.xml.sax.helpers.*; public class video_3d_4 extends BApplet {int inc;//, vidH = 480, vidW = 640; BImage frame; boolean refresh = false; int black = 0; float rotX, rotY, rotZ; int cubed = 20, cubeSize = 7; int[][][] pix = new int[cubed][cubed][cubed]; //pix = new Array[30]; //color white = color(255,255,255); void setup() { println("new run--------------------"); size(320, 240); beginVideo(cubed, cubed, cubed); //frame = loadImage("30x30.gif"); background(0xffEF8616); //noStroke(); for(int i = 0; i < cubed; i++){ //cols for(int j = 0; j < cubed; j++){ for(int k = 0; k < cubed; k++){ pix[i][j][k] = (0xffEF6716); } } } } public void videoEvent() { refresh = true; } void loop(){ translate(width/2, height/2, 0); rotateY(rotY); rotateX(rotX); rotateZ(rotZ); rotX += .005f; rotY += .01f; rotZ += .02f; if(refresh == true){ refresh = false; background(0xffEF8616); //shift everyone over for(int i = 0; i < cubed-1; i++){ //cols for(int j = 0; j < cubed; j++){ for(int k = 0; k < cubed; k++){ int temp = pix[cubed-2-i][j][k]; pix[cubed-i-1][j][k] = temp; } } } //input video data into pix[0] for(int j = 0; j < cubed; j++){ //cols for(int i = 0; i < cubed; i++){ //rows if (red(video.pixels[(i*cubed)+j]) + green(video.pixels[(i*cubed)+j]) + blue(video.pixels[(i*cubed)+j]) < 400){ pix[0][i][j] = black; }else{ pix[0][i][j] = video.pixels[(i*cubed)+j]; } } } //draw boxes for(int i = 0; i < cubed; i++){ //cols for(int j = 0; j < cubed; j++){ for(int k = 0; k < cubed; k++){ if (pix[i][j][k] != black){ fill(pix[i][j][k]); push(); translate((i*cubeSize)-(cubed*cubeSize/2),(j*cubeSize)-(cubed*cubeSize/2), (k*cubeSize)-(cubed*cubeSize/2)); box(cubeSize); pop(); } } } } } inc++; //saveFrame("video32d"+inc+".tga"); //println(inc); } void keyPressed() { println("tiff"); saveFrame("video3d"+random(100)+".tif"); } }