//
import render.*; public class BouncingThingie extends RenderApplet { public void initialize() { setBgColor(.7,.7,1); // SKY COLORED BACKGROUND setFOV(.6); // SMALLER FIELD OF VIEW renderer.isHeadsUp = false; Material red = new Material(), gold = new Material(); red.setColor(.5,0,0, 1,1,1,20); // WHITE HILITE MAKES PLASTIC LOOK double r=.4,g=.3,b=.12,S=3.3,G=.13; gold.setColor(r,g,b,S*r,S*g,S*b,10).setGlow(G*r,G*g,G*b); world.add().cylinder(15).setMaterial(red); // RED CYLINDER world.add().ball(30).setMaterial(gold); // GOLD BALL world.child[1].addNoise(4,.15); // NOISE HAS FREQ. AND AMPLITUDE push(); translate(0,-1,0); rotateX(Math.PI/2); transform(world.child[0]); // MAKE THE CYLINDER VERTICAL pop(); addLight( 1, 1,-1, .5 ,.4 ,.5 ); // USE MULTI-TINTED SOFT LIGHTING addLight( 1,-1, 1, .6 ,.4 ,.4 ); addLight(-1, 1, 1, .4 ,.4 ,.6 ); addLight(-1,-1, 1, .35,.2 ,.2 ); addLight(-1, 1,-1, .2 ,.25,.3 ); addLight( 1,-1,-1, .3 ,.2 ,.25); } public void animate(double time) { double s = Math.sin(10*time), c = Math.cos(10*time); push(); translate(0, 1.2 + .2*c, 0); scale(1 - .1*s, 1 + .2*s, 1 - .1*s); transform(world.child[1]); pop(); } }