Jumat, 01 Agustus 2025

JAVA - 3D

 


UNTUK MENAMPILKAN 3D... SEBELUMNYA HARUS INSTAL FILE :
j3d-1_5_2-windows-i586
SEPERTI PADA GAMBAR DI BAWAH INI :

SETELAH DIINSTAL... BUAT PROGRAM JAVA DAN RUN


CONTOH HASIL PROGRAM JAVA 3D





import java.awt.*;

import java.applet.Applet;

import java.awt.BorderLayout;

import com.sun.j3d.utils.picking.PickTool;

import com.sun.j3d.utils.picking.behaviors.*;

import com.sun.j3d.utils.applet.MainFrame;

import com.sun.j3d.utils.universe.*;

import javax.media.j3d.*;

import javax.vecmath.*;

public class objek extends Applet {

public objek() {

}

public static void main(String[] args) {

MainFrame mf = new MainFrame(new objek(), 600, 200);

    mf.setResizable(false);

    mf.setTitle("Objek 3D --> Gunakan mouse untuk memutar objek");

}

public void init() {

setLayout(new BorderLayout());

GraphicsConfiguration config =SimpleUniverse.getPreferredConfiguration();

Canvas3D c = new Canvas3D(config);

add("Center", c);

x = new SimpleUniverse(c);

BranchGroup scene = tampil_objek(c);

x.getViewingPlatform().setNominalViewingTransform();

x.addBranchGraph(scene);

}

public void destroy() {

x.cleanup();

}

private SimpleUniverse x = null;

public BranchGroup tampil_objek(Canvas3D canvas) {

Color3f colorX    = new Color3f(0.0f, 0.0f, 0.0f);

Color3f colorY    = new Color3f(1.0f, 1.0f, 1.0f);

Color3f warna_teks  = new Color3f(0.5f, 0.5f, 0.5f);

Color3f colorXx   = new Color3f(0.9f, 0.9f, 0.9f);

Color3f ColorYy   = new Color3f(0.0f, 0.0f, 0.0f);

Color3f colorXY   = new Color3f(0.5f, 0.5f, 0.5f);

Color3f warna_latar   = new Color3f(0.2f, 0.04f,0.44f);

Transform3D objek_transform;

BranchGroup dimensi = new BranchGroup();

TransformGroup ukuran = new TransformGroup();

Transform3D tiga_dimensi = new Transform3D();

Material objek_material = new Material(warna_teks, colorX, warna_teks, colorY, 100.0f);

Appearance tampilan = new Appearance();

objek_material.setLightingEnable(true);

tampilan.setMaterial(objek_material);

tiga_dimensi.setScale(0.3);

ukuran.setTransform(tiga_dimensi);

dimensi.addChild(ukuran);

BoundingSphere sudut =new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);

Background latar = new Background(warna_latar);

latar.setApplicationBounds(sudut);

ukuran.addChild(latar);

Light cahaya1;

Light cahaya2;

Font3D font_teks = new Font3D(new Font("Arial Black", Font.ITALIC, 1),new FontExtrusion());

Text3D teks_3D = new Text3D(font_teks, new String("Maxikom"),new Point3f(-2.5f, -0.3f, 0.0f));

Shape3D objk_3D = new Shape3D();

objk_3D.setGeometry(teks_3D);

objk_3D.setAppearance(tampilan);

TransformGroup trnsform = new TransformGroup();

trnsform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

trnsform.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

trnsform.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

trnsform.addChild(objk_3D);

ukuran.addChild(trnsform);

objek_transform = new Transform3D();

Vector3d vektor =  new Vector3d(0.0, 0.0, 2.0);

objek_transform.set(vektor);

TransformGroup transformasi = new TransformGroup(objek_transform);

transformasi.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

transformasi.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

transformasi.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

ukuran.addChild(transformasi);

objek_transform = new Transform3D();

Vector3d vektor2 = new Vector3d(0.5, 0.8, 2.0);

objek_transform.set(vektor2);

TransformGroup transformasi_2 = new TransformGroup(objek_transform);

transformasi_2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

transformasi_2.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

transformasi_2.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

ukuran.addChild(transformasi_2);

ColoringAttributes set_warna = new ColoringAttributes();

ColoringAttributes set_warna2 = new ColoringAttributes();

set_warna.setColor(colorXx);

set_warna2.setColor(ColorYy);

Appearance tampilan1 = new Appearance();

Appearance tampilan2 = new Appearance();

tampilan1.setColoringAttributes(set_warna);

tampilan2.setColoringAttributes(set_warna2);

AmbientLight set_cahaya = new AmbientLight(colorXY);

Point3f titik1  = new Point3f(1.0f, 0.0f, 2.0f);

Point3f titik2 = new Point3f(1.0f, 0.0f, 0.0f);

cahaya1 = new PointLight(colorXx, titik1, titik2);

cahaya2 = new PointLight(ColorYy, titik1, titik2);

set_cahaya.setInfluencingBounds(sudut);

cahaya1.setInfluencingBounds(sudut);

cahaya2.setInfluencingBounds(sudut);

ukuran.addChild(set_cahaya);

transformasi.addChild(cahaya1);

transformasi_2.addChild(cahaya2);

PickRotateBehavior properti =new PickRotateBehavior(dimensi, canvas, sudut);

properti.setMode(PickTool.BOUNDS);

dimensi.addChild(properti);

PickZoomBehavior properti2 =new PickZoomBehavior(dimensi, canvas, sudut);

properti2.setMode(PickTool.BOUNDS);

dimensi.addChild(properti2);

PickTranslateBehavior properti3 =new PickTranslateBehavior(dimensi, canvas, sudut);

properti3.setMode(PickTool.BOUNDS);

dimensi.addChild(properti3);

dimensi.compile();

return dimensi;

}

}

Tidak ada komentar: