Sisukord:
Video: Blenderi kasutamine Java3D mudelite loomiseks: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:51
Kui olete Java programmeerija, olete ilmselt tahtnud mingil hetkel programmeerida 3D -vormingus. Aga kuidas? Võite kasutada Java3D -d ja sisestada aeglaselt 3D -hulknurga iga punkti (proovige seda, uskuge mind, et see on halb mõte) või kasutada tasuta ja avatud lähtekoodiga 3D -modelleerimisprogrammi Blender (https://blender.org). skripti nimega Blend2Java (https://sourceforge.net/projects/blend2java/). Kuid Blend2Java dokumentatsioon on peaaegu olematu, seega istun siin seda kirjutades.
Samm: laadige programmid alla
Te vajate Blenderit (https://blender.org) ja Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, kui olete need mõlemad alustanud, tehke Blenderis lihtne mudel (või kasutage lihtsalt tavalist kuubikut).
Samm: eksportige oma mudel XML -i
Kui olete mudeli, mida soovite Blenderis kasutada, avage redigeerimisrežiim ja vajutage kõigi punktide valimiseks klahvi "a". Valige alumisel paneelil tekstiredaktor. Avage tekstiredaktoris uus fail. Avage allalaaditud fail blend2java.py. Käivita. Ok, teie objekt peaks nüüd olema. XML -vormingus kõikjal, kuhu see salvestati (kui teil on see ja veateade teeb shure, on teil objekti jaoks ainult 1 materjal). Nimetage objekt ümber (sellel on imelik nimi).
Samm: importige objekt Java -sse
Kuju3D fred = null; proovige {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // sinu failinimi siin fred = (Shape3D) e.readObject (); e.sulge (); } saak (Erand e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Välimus ap = uus Välimus (); Color3f col = uus Color3f (1,0f, 0,0f, 1,0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); sisestage see mis tahes 3D -koodi või kasutage siin kogu koodi import java.io.*; import java.beans. XMLDecoder; import java.applet. Applet; import java.awt.*; import java. awt.event.*; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; import java.applet. Applet; import java.awt. BorderLayout; import java.awt. Frame; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.geometry. ColorCube; import com.sun. j3d.utils.universe.*; import com.sun.j3d.utils.behaviors.mouse.*; import javax.media.j3d.*; import javax.vecmath.*; import java.awt.event.*; import java.util. Enumeration; avalik klass MouseBehaviorApp laiendab apletti {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = uus TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Kuju3D fred = null; proovige {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.sulge (); } saak (Erand e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Välimus ap = uus Välimus (); Color3f col = uus Color3f (1,0f, 0,0f, 1,0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); objTransform.addChild (fred); MouseRotate myMouseRotate = uus MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = uus MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = uus MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = uus Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Center", canvas3D); BranchGroup stseen = createSceneGraph (); SimpleUniverse simpleU = uus SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (stseen); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} kasutage seda täieliku programmi jaoks! olete valmis! ja siis ütlete "mis nüüd"? Mul pole aimugi! Õppisin just Java keelt kuu aega tagasi, lol!
Soovitan:
Fotogrammeetria kasutamine mudelite loomiseks: 9 sammu
Fotogrammeetria kasutamine mudelite loomiseks: Kes ma olen? Olen Samuel Conklin ja olen teise kursuse õppejõud E.L. Meyersi keskkool. Olen viimase paari kuu jooksul fotogrammeetriaga katsetanud ja loodan teid aidata, kui otsustate selle toote uuesti luua. Olen huvitatud sellest, kuidas teised inimesed
Piezo kasutamine tooni loomiseks: Põhitõed: 4 sammu (piltidega)
Kuidas kasutada pieso tooni loomiseks: Põhitõed: Tere kõigile! Selles juhendis kasutame tooni tekitamiseks piesohelisignaali. Mis on pieso? Piezo on elektrooniline seade, mida saab kasutada nii heli tekitamiseks kui ka tuvastamiseks. Rakendused: saate mängida sama vooluringi
Blenderi elektroonilise mooduli korpuse 3D -printeri andmete tegemine: 6 sammu
Blenderi elektroonilise mooduli ümbrise 3D -printeri andmete tegemine: teil on neid vaja (kasutatud näide I). 3D -printer (TEVO Tarantula) 2D -skanner (CanoScan LiDE 200) 3D -andmete redaktor (segisti) 2D -andmete redaktor (Paint Shop Pro) https://neo-sahara.com/wp/case_make_blender
RGB LED -ide kasutamine värviliste järjestuste loomiseks: 12 sammu
RGB -valgusdioodide kasutamine värvijadade loomiseks: see juhend sisaldab RGB -valgusdioodide kasutamist värvijada loomiseks, kasutades Arduino Uno ja koodi
Vaskteibi kasutamine digitaalse valikupadja loomiseks: 4 sammu
Vaskteibi kasutamine digitaalse valikupadja loomiseks: osaliselt jagan seda tehnikat ja osaliselt õpin ma juhendeid kasutama. Kui tehnika dokumentatsioonis või Instructables'i kasutamises on probleeme, andke mulle sellest kommentaarides teada - aitäh! Mul oli vaja pikka rida