1
C / C++ /C# / Re: jelly vector / dragon ball
« on: April 11, 2013 »
Processing (Java) jellycube:
Code: [Select]
int count = 0;
int speed = 1;
int distance = 0;
boolean strok = true;
boolean freerot = false;
void setup() {
size( 500, 500, P3D );
}
void draw() {
background( 120 );
translate( width / 2, height / 2 + 100, distance );
count += speed;
if ( !freerot )
rotate( sin( count / 341.0 ), 0.2, 1.0, 0 );
else {
rotate( ( mouseX - width / 2 ) / float( width ) * 2, 0.0, 1.0, 0.0 );
rotate( ( mouseY - height / 2 ) / 1000.0, -0.3, 0.0, 0.0 );
}
if ( strok )
strokeWeight( 1 );
else
noStroke();
scale( 10, 10, 10 );
scale( 1, -1 + sin( count / 100.0 * PI ) * 0.2, 1 );
lights();
fill( 80, 80, 80, 130 );
box( 400, 2, 400 );
fill( 255 );
for ( int y = 0; y < 9; y++ ) {
float xz = sin ( ( y ) * PI / 9.0 ) * sin( count / 100.0 * PI ) * 0.2 + 1.0;
float xzz = sin ( ( y + 1 ) * PI / 9.0 ) * sin( count / 100.0 * PI ) * 0.2 + 1.0;
if ( xz == 0 )
xz = 0.01;
if ( xzz == 0 )
xzz = 0.01;
translate( 0, 2, 0 );
//back wall
beginShape();
vertex( -10 * xz, -1, -10 * xz );
vertex( -10 * xzz, 1, -10 * xzz );
vertex( 10 * xzz, 1, -10 * xzz );
vertex( 10 * xz, -1, -10 * xz );
endShape();
//front wall
beginShape();
vertex( -10 * xz, -1, 10 * xz );
vertex( -10 * xzz, 1, 10 * xzz );
vertex( 10 * xzz, 1, 10 * xzz );
vertex( 10 * xz, -1, 10 * xz );
endShape();
//left wall
beginShape();
vertex( -10 * xz, -1, -10 * xz );
vertex( -10 * xzz, 1, -10 * xzz );
vertex( -10 * xzz, 1, 10 * xzz );
vertex( -10 * xz, -1, 10 * xz );
endShape();
//right wall
beginShape();
vertex( 10 * xz, -1, -10 * xz );
vertex( 10 * xzz, 1, -10 * xzz );
vertex( 10 * xzz, 1, 10 * xzz );
vertex( 10 * xz, -1, 10 * xz );
endShape();
}
//top
beginShape();
vertex( -10, 1, -10 );
vertex( -10, 1, 10 );
vertex( 10, 1, 10 );
vertex( 10, 1, -10 );
endShape();
fill( 80, 80, 80, 130 );
translate( 0, 2, 0 );
box( 400, 2, 400 );
count += speed;
}
void keyPressed() {
if ( key == ' ' )
freerot = !freerot;
else if ( key == 's' || key == 'S' )
strok = !strok;
else if ( key == CODED ) {
if ( keyCode == LEFT )
speed++;
else if ( keyCode == RIGHT )
speed--;
else if ( keyCode == UP )
distance += 20;
else if ( keyCode == DOWN )
distance -= 20;
}
}

