Transformujte 3D uzly pomocí Eulerových úhlů v Javě s Aspose.3D

Úvod

V tomto tutoriálu se dozvíte jak použít aspose 3d java k transformaci 3D uzlů aplikací Eulerových úhlů. Na konci průvodce budete schopni přidat 3D rotaci, nastavit translaci v Javě a vytvořit dynamické scény, které reagují na data v reálném čase.

Rychlé odpovědi

  • Která knihovna provádí 3D transformace v Javě? Aspose 3D for Java.
  • Která metoda nastavuje rotaci pomocí Eulerových úhlů? setEulerAngles() na transformaci uzlu.
  • Jak přesunu uzel v prostoru? Použijte setTranslation() s objektem Vector3.
  • Potřebuji licenci pro produkční nasazení? Ano, je vyžadována komerční licence Aspose 3D.
  • Mohu exportovat do FBX? Rozhodně – scene.save(..., FileFormat.FBX7500ASCII) funguje bez dalších úprav.

Předpoklady

Než se pustíme do tutoriálu, ujistěte se, že máte připravené následující předpoklady:

  • Základní znalosti programování v Javě.
  • Nainstalovaný Java Development Kit (JDK).
  • Knihovnu Aspose.3D, kterou můžete získat z Aspose.3D Java Documentation .

Import balíčků

Začněte importováním potřebných balíčků do vašeho Java projektu. Ujistěte se, že je knihovna Aspose.3D správně přidána do classpath. Pokud jste ji ještě nestáhli, najdete odkaz ke stažení zde .

import com.aspose.threed.*;

aspose 3d java – Práce s Eulerovými úhly

Krok 1. Inicializace scény a uzlu

Nejprve vytvořte scénu a uzel, který bude obsahovat geometrii, kterou chcete transformovat.

// ExStart:AddTransformationToNodeByEulerAngles
// Initialize scene object
Scene scene = new Scene();

// Initialize Node class object
Node cubeNode = new Node("cube");

Krok 2. Vytvoření mesh a nastavení geometrie

Dále vygenerujte jednoduchý mesh (v tomto případě krychli) a připojte jej k uzlu.

// Call Common class create mesh using polygon builder method to set mesh instance
Mesh mesh = Common.createMeshUsingPolygonBuilder();

// Point node to the Mesh geometry
cubeNode.setEntity(mesh);

Přidání 3D rotace k uzlu

Krok 3. Nastavení Eulerových úhlů a translace

Nyní aplikujeme rotaci pomocí Eulerových úhlů a zároveň posuneme uzel do viditelné pozice.

// Euler angles
cubeNode.getTransform().setEulerAngles(new Vector3(0.3, 0.1, -0.5));

// Set translation
cubeNode.getTransform().setTranslation(new Vector3(0, 0, 20));

Nastavení translace v Javě – Umístění uzlu

Výše uvedený krok translace demonstruje set translation java v praxi: uzel je posunut o 20 jednotek podél osy Z, aby byl po vykreslení viditelný.

Krok 4. Přidání uzlu do scény

Připojte transformovaný uzel k kořenovému uzlu scény.

// Add cube to the scene
scene.getRootNode().getChildNodes().add(cubeNode);

Krok 5. Uložení 3D scény

Nakonec exportujte scénu do souboru FBX (nebo jakéhokoli jiného podporovaného formátu).

// The path to the documents directory.
String MyDir = "Your Document Directory";
MyDir = MyDir + "TransformationToNode.fbx";

// Save 3D scene in the supported file formats
scene.save(MyDir, FileFormat.FBX7500ASCII);
// ExEnd:AddTransformationToNodeByEulerAngles
System.out.println("\nTransformation added successfully to node.\nFile saved at " + MyDir);

Nezapomeňte nahradit "Your Document Directory" vhodnou cestou na vašem počítači.

Závěr

Gratulujeme! Úspěšně jste transformovali 3D uzly pomocí Eulerových úhlů v Javě s aspose 3d java. Experimentujte s různými úhly a translacemi a vytvářejte dynamické a poutavé 3D scény.

Často kladené otázky

Q: Jaký je rozdíl mezi Eulerovými úhly a rotací pomocí quaternionu?
A: Eulerovy úhly jsou intuitivní (pitch, yaw, roll), ale mohou trpět gimbal lockem, zatímco quaterniony tomuto problému předcházejí a jsou vhodnější pro plynulé interpolace.

Q: Mohu řetězit více transformací na stejném uzlu?
A: Ano. Zavolejte setEulerAngles, setTranslation a setScale v libovolném pořadí; knihovna je spojí do jedné transformační matice.

Q: Je možné exportovat do jiných formátů, jako OBJ nebo STL?
A: Rozhodně. Nahraďte FileFormat.FBX7500ASCII za FileFormat.OBJ nebo FileFormat.STL v metodě scene.save.

Q: Jak aplikovat stejnou rotaci na několik uzlů najednou?
A: Vytvořte rodičovský uzel, aplikujte rotaci na něj a přidejte podřízené uzly. Všechny podřízené uzly zdědí transformaci.

Q: Musím po uložení volat nějaké úklidové metody?
A: Java garbage collector zvládne většinu prostředků, ale můžete explicitně zavolat scene.dispose(), pokud pracujete s velkými scénami v dlouho běžící aplikaci.


Poslední aktualizace: 2025-12-13
Testováno s: Aspose.3D 23.12 pro Java
Autor: Aspose