WIMPAX BOX 3D
Source Code :
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.PlatformGeometry;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.*;
import javax.swing.JApplet;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Point3f;
import javax.vecmath.Vector3f;
import sun.applet.AppletAudioClip;
/**
*
* @author multimedia10
*/
public class progres_1 extends JApplet {
TransformGroup Kepala;
TransformGroup Badan;
TransformGroup Tangan_kanan;
TransformGroup Tangan_kiri;
TransformGroup Kaki_kanan;
TransformGroup Kaki_kiri;
TransformGroup Mata_kanan;
TransformGroup Mata_kanan2;
TransformGroup Mata_kiri;
TransformGroup Mata_kiri2;
TransformGroup Hidung;
Transform3D Trans = new Transform3D();
Vector3f Vector = new Vector3f();
public progres_1() {
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
add("Center", canvas3D);
SimpleUniverse simU = new SimpleUniverse(canvas3D);
BranchGroup scene = createSceneGraph();
simU.getViewingPlatform().setNominalViewingTransform();
simU.addBranchGraph(scene);
}
Appearance apr(float r, float g, float b) {
Color3f Red = new Color3f(r, g, b);
Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
Color3f white = new Color3f(0.0f, 0.0f, 0.0f);
//mix warna
Material material = new Material(Red, black, Red, white, 0);
Appearance appearance = new Appearance();
appearance.setMaterial(material);
return appearance;
}
//rotasi mata,hidung
TransformGroup putar(double d1, double d2) {
Transform3D rotate = new Transform3D();
Transform3D temprotate = new Transform3D();
rotate.rotX(Math.PI / d1);
temprotate.rotY(Math.PI / d2);
rotate.mul(temprotate);
TransformGroup objRotate = new TransformGroup(rotate);
return objRotate;
}
//MENGGAMBAR WIMPEXBOX
//MENGGAMBAR KEPALA
void Kepalabox() {
Kepala = new TransformGroup();
Vector.set(0.0f, 0.55f, 0.0f);
Trans.set(Vector);
Kepala.setTransform(Trans);
Box Kotak1 = new Box(0.8f, 0.45f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Kepala.addChild(Kotak1);
}
//MENGGAMBAR BADAN
void Badanabox() {
Badan = new TransformGroup();
Vector.set(0.0f, -0.4f, 0.0f);
Trans.set(Vector);
Badan.setTransform(Trans);
Box Kotak2 = new Box(0.4f, 0.5f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Badan.addChild(Kotak2);
}
//MENGGAMBAR TANGAN KANAN
void Tanganbox_kanan() {
Tangan_kanan = new TransformGroup();
Vector.set(-0.59f, -0.37f, 0.0f);
Trans.set(Vector);
Tangan_kanan.setTransform(Trans);
Box Kotak3 = new Box(0.12f, 0.42f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Tangan_kanan.addChild(Kotak3);
}
//MENGGAMBAR TANGAN KIRI
void Tanganbox_kiri() {
Tangan_kiri = new TransformGroup();
Vector.set(0.59f, -0.37f, 0.0f);
Trans.set(Vector);
Tangan_kiri.setTransform(Trans);
Box Kotak4 = new Box(0.12f, 0.42f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Tangan_kiri.addChild(Kotak4);
}
//MENGGAMBAR KAKI KANAN
void Kakibox_kanan() {
Kaki_kanan = new TransformGroup();
Vector.set(-0.23f, -1.1f, 0.0f);
Trans.set(Vector);
Kaki_kanan.setTransform(Trans);
Box Kotak5 = new Box(0.12f, 0.28f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Kaki_kanan.addChild(Kotak5);
}
//MENGGAMBAR KAKI KIRI
void Kakibox_kiri() {
Kaki_kiri = new TransformGroup();
Vector.set(0.23f, -1.1f, 0.0f);
Trans.set(Vector);
Kaki_kiri.setTransform(Trans);
Box Kotak6 = new Box(0.12f, 0.28f, 0.3f, apr(7.0f, 0.9f, 0.0f));
Kaki_kiri.addChild(Kotak6);
}
//MENGGAMBAR MATA KANAN
void Mata_Kanan() {
Mata_kanan = new TransformGroup();
TransformGroup x = putar(2, 1.0);
TransformGroup y = putar(2, 1.0);
TransformGroup z = putar(2, 1.0);
TransformGroup p = putar(2, 1.0);
TransformGroup h = putar(2, 1.0);
Mata_kanan2 = new TransformGroup();
Vector.set(-0.4f, 0.69f, 0.1f);
Trans.set(Vector);
Mata_kanan2.setTransform(Trans);
Cylinder Silinder = new Cylinder(0.1f, 0.42f, apr(0.0f, 0.0f, 0.0f));
Mata_kanan2.addChild(z);
z.addChild(Silinder);
Mata_kanan.addChild(Mata_kanan2);
}
//MENGGAMBAR MATA KIRI
void Mata_Kiri() {
Mata_kiri = new TransformGroup();
TransformGroup x = putar(2, 1.0);
TransformGroup y = putar(2, 1.0);
TransformGroup z = putar(2, 1.0);
TransformGroup p = putar(2, 1.0);
TransformGroup h = putar(2, 1.0);
Mata_kiri2 = new TransformGroup();
Vector.set(0.4f, 0.69f, 0.1f);
Trans.set(Vector);
Mata_kiri2.setTransform(Trans);
Cylinder Silinder2 = new Cylinder(0.1f, 0.42f, apr(0.0f, 0.0f, 0.0f));
Mata_kiri2.addChild(z);
z.addChild(Silinder2);
Mata_kiri.addChild(Mata_kiri2);
}
//MENGGAMBAR HIDUNG
void Hidungbox() {
Hidung = new TransformGroup();
TransformGroup x = putar(2, 1.0);
TransformGroup y = putar(2, 1.0);
TransformGroup z = putar(2, 1.0);
TransformGroup p = putar(2, 1.0);
TransformGroup h = putar(2, 1.0);
Point3f[] pt = {
new Point3f(0.18f, 0.35f, 0.33f),
new Point3f(-0.18f, 0.35f, 0.33f),
new Point3f(0.0f, 0.35f, -0.2f),
new Point3f(0.0f, 0.56f, 0.33f)
};
int co[] = {
0, 3, 1,
0, 2, 3,
0, 1, 2,
1, 3, 2
};
GeometryInfo gi = new GeometryInfo(GeometryInfo.TRIANGLE_ARRAY);
gi.setCoordinates(pt);
gi.setCoordinateIndices(co);
NormalGenerator ng = new NormalGenerator();
ng.setCreaseAngle(Math.PI);
ng.generateNormals(gi);
GeometryArray te = gi.getGeometryArray();
Shape3D segitiga = new Shape3D(te, apr(0f, 0f, 0f));
Transform3D sgt = new Transform3D();
TransformGroup tfgg = new TransformGroup(sgt);
tfgg.addChild(segitiga);
Hidung.addChild(tfgg);
}
BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
TransformGroup objScale = new TransformGroup();
Transform3D scaleTrans = new Transform3D();
scaleTrans.set(1 / 5.5f);
objScale.setTransform(scaleTrans);
objRoot.addChild(objScale);
//MEMANGGIL WIMPEXBOX
//memanggil Kepala
TransformGroup objTrans6 = new TransformGroup();
objTrans6.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans6.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans6);
Kepalabox();
objTrans6.addChild(Kepala);
//memanggil Badan
TransformGroup objTrans7 = new TransformGroup();
objTrans7.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans7.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans7);
Badanabox();
objTrans7.addChild(Badan);
//memanggil Tangan Kanan
TransformGroup objTrans8 = new TransformGroup();
objTrans8.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans8.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans8);
Tanganbox_kanan();
objTrans8.addChild(Tangan_kanan);
//memanggil Tangan Kiri
TransformGroup objTrans9 = new TransformGroup();
objTrans9.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans9.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans9);
Tanganbox_kiri();
objTrans9.addChild(Tangan_kiri);
//memanggil Kaki Kanan
TransformGroup objTrans10 = new TransformGroup();
objTrans10.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans10.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans10);
Kakibox_kanan();
objTrans10.addChild(Kaki_kanan);
//memanggil Kaki Kiri
TransformGroup objTrans11 = new TransformGroup();
objTrans11.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans11.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans11);
Kakibox_kiri();
objTrans11.addChild(Kaki_kiri);
//memanggil Mata Kanan
TransformGroup objTrans12 = new TransformGroup();
objTrans12.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans12.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans12);
Mata_Kanan();
objTrans12.addChild(Mata_kanan);
//memanggil Mata Kiri
TransformGroup objTrans13 = new TransformGroup();
objTrans13.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans13.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans13);
Mata_Kiri();
objTrans13.addChild(Mata_kiri);
//memanggil Hidung
TransformGroup objTrans14 = new TransformGroup();
objTrans14.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans14.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans14);
Hidungbox();
objTrans14.addChild(Hidung);
// membuat background belakang
TransformGroup objTrans1 = new TransformGroup();
objTrans1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans1.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objScale.addChild(objTrans1);
BoundingSphere bounds = new BoundingSphere(new Point3d(), 100.0);
Background bg = new Background(new Color3f(19.5f, 10.5f, 0.5f));
bg.setApplicationBounds(bounds);
objTrans1.addChild(bg);
//mengatur mouse kepala
MouseRotate mr = new MouseRotate();
mr.setTransformGroup(objTrans6);
mr.setSchedulingBounds(bounds);
mr.setFactor(0.007);
objTrans6.addChild(mr);
//mengatur mouse kepala
MouseRotate mr1 = new MouseRotate();
mr1.setTransformGroup(objTrans7);
mr1.setSchedulingBounds(bounds);
mr1.setFactor(0.007);
objTrans7.addChild(mr1);
//mengatur mouse tangan kanan
MouseRotate mr3 = new MouseRotate();
mr3.setTransformGroup(objTrans8);
mr3.setSchedulingBounds(bounds);
mr3.setFactor(0.007);
objTrans8.addChild(mr3);
//mengatur mouse tangan kiri
MouseRotate mr4 = new MouseRotate();
mr4.setTransformGroup(objTrans9);
mr4.setSchedulingBounds(bounds);
mr4.setFactor(0.007);
objTrans9.addChild(mr4);
//mengatur mouse kaki kanan
MouseRotate mr5 = new MouseRotate();
mr5.setTransformGroup(objTrans10);
mr5.setSchedulingBounds(bounds);
mr5.setFactor(0.007);
objTrans10.addChild(mr5);
//mengatur mouse kaki kiri
MouseRotate mr6 = new MouseRotate();
mr6.setTransformGroup(objTrans11);
mr6.setSchedulingBounds(bounds);
mr6.setFactor(0.007);
objTrans11.addChild(mr6);
//mengatur mouse tangan kiri
MouseRotate mr7 = new MouseRotate();
mr7.setTransformGroup(objTrans12);
mr7.setSchedulingBounds(bounds);
mr7.setFactor(0.007);
objTrans12.addChild(mr7);
//mengatur mouse kaki kanan
MouseRotate mr8 = new MouseRotate();
mr8.setTransformGroup(objTrans13);
mr8.setSchedulingBounds(bounds);
mr8.setFactor(0.007);
objTrans13.addChild(mr8);
//mengatur mouse kaki kiri
MouseRotate mr9 = new MouseRotate();
mr9.setTransformGroup(objTrans14);
mr9.setSchedulingBounds(bounds);
mr9.setFactor(0.007);
objTrans14.addChild(mr9);
//mengatur pencahayaan
Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f);
AmbientLight ambienLightNode = new AmbientLight(ambientColor);
ambienLightNode.setInfluencingBounds(bounds);
objRoot.addChild(ambienLightNode);
Color3f lightcolor = new Color3f(1.0f, 1.0f, 1.0f);
Vector3f lightDirection = new Vector3f(-0.2f, -0.5f, -0.5f);
DirectionalLight light1 = new DirectionalLight(lightcolor, lightDirection);
light1.setInfluencingBounds(bounds);
objRoot.addChild(light1);
return objRoot;
}
public static void main(String[] a) {
Frame fra = new MainFrame(new progres_1(), 1350, 690);
}
}

Tidak ada komentar:
Posting Komentar