J3DScene .. 3D fremviser i java

De gange jeg har lavet geometriske algoritmer har det altid generet mig at jeg ikke har haft noget ordentligt værktøj til at visualisere løsninger eller data-strukturer. Jeg har enten tegnet 2D-tegninger på papir hvor punkter var store hvis de var ude af papirets plan og små hvis de var inde i planet. Hvis jeg skal lave rotationer eller translateringer i 3D sidder jeg typisk og stritter og vifter med højre hånds tommel, pege og lange-finger for at illustrere et Cartesisk koordinatsystem, og hvis to koordinat-systemer skal bruges må jeg tage hjørnet af et bord til hjælp.
Problemet blev ikke mindre da jeg begyndte at interessere mig for proteiner, som er store makro-molekyler med indviklede strukturer. Selvom der findes glimrende fremvisere af protein-strukturer vil man altid gerne selv rode med fremviseren så den kan vise forskellige egenskaber. Jeg har en tid benyttet POV-Ray til at fremvise scener, men det tager for lang tid både at skrive en scene samt at ray-trace et billede med megen gennemsigtighed.
Jeg har derfor endelig taget mig sammen til at lave en lille 3D fremviser i mit yndlings-sprog java: J3DScene. Formålet med biblioteket er at gøre opbygning af 3D-scenen så enkel som muligt så man kan bruge sin tid til at kigge på den i stedet. Biblioteket skal blot inkluderes i ens class-path hvorefter følgende java-instruktioner opretter en frame som viser en kapsel-form, en cylinder og en tekst:
J3DGraphics scene = J3DGraphics.createJ3DGraphicsInFrame();
scene.addVolume( new Cylinder(new Vector(1,0,0), new Vector(0,1,0), 0.1f) );
scene.addVolume(
new Capsule(new Vector(0,0,0), new Vector(-1,1,0), 0.2f),
new java.awt.Color(200,40,40,100) );
scene.addText( "Some text", new Vector(1,1,0) );
scene.repaint();
Flere eksempler og detaljer kan ses på J3DScene hjemmesiden. Desværre kræves det at man installerer Java3D for at fremviseren virker.
- Rasmuss blog
- log ind eller opret konto for at skrive kommentarer


classpath
Det er måske ikke alle der ved hvordan man tilføjer en jar-fil til sin class-path så her er en lille vejledning i dette også. Antag du har filen Test.java som indeholder følgende
Denne fil skal nu kompileres, så vi lægger eksempelvis J3DScene.jar i samme bibliotek som Test.java og skriver
Dette skulle gerne kompilere og køre.
Ønsker man at tilføje en jar-fil til sit projekt i eclipse kan man trykke 'Project' -> 'Properties' -> 'Java Build Path' -> 'Libraries' -> 'Add external JARs' og så finde J3DScene.jar. Ovenstående kode vil derefter også virke. Husk stadig at Java3D skal være installeret.
A common mistake made by people trying to design something completely foolproof, is to underestimate the engenuity of complete fools.
-HHGTTG
Det bør nævnes at nogle
Det bør nævnes at nogle metoder har skiftet navn siden jeg skrev denne post. Men hjemmesiden jeg linker til er opdateret.