
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Dacă sunteți un programator Java, probabil că ați dorit să programați în 3D la un moment dat. Dar cum? Ei bine, puteți folosi Java3D și tastați încet fiecare punct dintr-un poligon 3D (ați încercat să aveți încredere în mine, este o idee proastă) sau puteți utiliza Blender (https://blender.org) un program de modelare 3D gratuit și open source împreună cu un script numit Blend2Java (https://sourceforge.net/projects/blend2java/). Cu toate acestea, documentația de pe Blend2Java este aproape inexistentă, așa că de aceea stau aici scriind acest lucru.
Pasul 1: Descărcați programele
Veți avea nevoie de Blender (https://blender.org) și Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, după ce le aveți pe amândouă, începeți făcând un model simplu (sau doar folosind cubul standard) în Blender.
Pasul 2: Exportați-vă modelul în XML
Odată ce ai un model pe care ți-ar plăcea să îl folosești în Blender deschide Mod Editare și apasă tasta „a” pentru a selecta toate punctele. În panoul de jos, selectați editorul de text. Deschideți un fișier nou în editorul de text. Deschideți fișierul blend2java.py pe care l-ați descărcat. Run. Ok obiectul dvs. ar trebui să fie acum în. XML oriunde l-ați salvat (dacă aveți și un mesaj de eroare vă asigură că aveți doar 1 material pentru obiect). Redenumiți obiectul (va avea un nume ciudat).
Pasul 3: Importați obiectul în Java
Shape3D fred = nul; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // numele fișierului dvs. aici fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aspect ap = aspect nou (); Color3f col = new Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); introduceți-l în orice cod 3d sau utilizați întregul cod aici 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.behavior.mouse. *; import javax.media.j3d. *; import javax.vecmath. *; import java.awt.event. *; import java.util. Enumeration; public class MouseBehaviorApp extends Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = new TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = nul; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aspect ap = Aspect nou (); Color3f col = new 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 = new MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (nou BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (nou BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = new MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (nou BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); returnează objRoot; } public MouseBehaviorApp () {setLayout (nou BorderLayout ()); Canvas3D canvas3D = new Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Centru", canvas3D); Scena BranchGroup = createSceneGraph (); SimpleUniverse simpleU = nou SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (scenă); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} utilizați acest lucru pentru o programă completă! ai terminat! și apoi spui „acum ce”? Habar n-am! Tocmai am învățat Java acum o lună lol!
Recomandat:
Utilizarea fotogrametriei pentru a crea modele: 9 pași

Utilizarea fotogrametriei pentru a crea modele: Cine sunt? Sunt Samuel Conklin și sunt student la E.L. Liceul Meyers. Am experimentat fotogrametria în ultimele două luni și sper să vă ajut dacă alegeți să recreați acest produs. Sunt interesat să văd cum alte persoane
Modele cu LED-uri (diferite modele de lumină): 3 pași

Modele LED (diferite modele de lumină): Ideea: Proiectul meu este un model de culoare LED. Proiectul conține 6 LED-uri care sunt toate alimentate și comunică cu Arduino. Există 4 modele diferite care vor circula și vor fi redate în buclă. Când un model se termină, altul ia
Utilizarea LED-urilor RGB pentru a crea secvențe de culoare: 12 pași

Utilizarea LED-urilor RGB pentru a crea secvențe de culori: aceste instrucțiuni vor arăta cum să utilizați LED-urile RGB pentru a crea secvențe de culori folosind Arduino Uno și un cod
Utilizarea LED-urilor și AT Tiny pentru a crea o stea intermitentă cu piezo joacă „Twinkle, Twinkle, Little Star”: 6 pași

Utilizarea LED-urilor și AT Tiny pentru a crea o stea intermitentă cu piezoș redând „Twinkle, Twinkle, Little Star”: Acest circuit folosește LED-uri, AT TINY și piezo pentru a produce o stea intermitentă și muzică de „Twinkle, Twinkle, little star " Vă rugăm să consultați pasul următor pentru prezentarea generală a circuitului
Utilizarea benzii de cupru pentru a crea un tampon de selecție digital: 4 pași

Folosirea benzii de cupru pentru a crea un tampon de selecție digital: parțial eu împărtășesc această tehnică și parțial eu învăț cum să folosesc Instructables. Dacă există probleme cu documentația mea despre tehnică sau cu utilizarea mea de Instructables, vă rog să-mi spuneți în comentarii - mulțumesc! Am avut nevoie de un rând lung o