{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Modellazione 3D","link":"https:\/\/docs.aspose.com\/3d\/it\/java\/3d-modeling\/","description":"Recent content in Modellazione 3D on Documentation","generator":"Hugo -- gohugo.io","language":"it","item":[{"title":"Java: Aggiungi informazioni sull'asset al documento 3D","link":"https:\/\/docs.aspose.com\/3d\/it\/java\/add-asset-information-to-3d-document\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/it\/java\/add-asset-information-to-3d-document\/","description":"\n        \n        \n        <h2 id=\"aggiungi-informazioni-sullasset-al-documento-3d\"><strong>Aggiungi informazioni sull&rsquo;asset al documento 3D<\/strong><\/h2>\n<p>I metadati sono informazioni strutturate che descrivono, spiegano, individuano o semplificano il recupero, l&rsquo;utilizzo o la gestione di una risorsa di informazioni. Aspose.3D for Java API supporta la definizione dei Metadati per la scena.<\/p>\n<h3 id=\"definire-un-metadato-per-la-scena\"><strong>Definire un metadato per la scena<\/strong><\/h3>\n<p>3D mostra la produzione di enormi quantit\u00e0 di metadati e informazioni sull&rsquo;immagine. I metadati sono una risorsa e fanno parte dello spettacolo.<\/p>\n<ol>\n<li>Inizializza una scena 3D utilizzando la classe <code>Scene<\/code>.<\/li>\n<li>Imposta il nome dell&rsquo;applicazione\/strumento.<\/li>\n<li>Imposta il nome del fornitore dell&rsquo;applicazione\/strumento.<\/li>\n<li>Impostare l&rsquo;unit\u00e0 di misura.<\/li>\n<li>Impostare il fattore di scala dell&rsquo;unit\u00e0 di misura.<\/li>\n<li>Salva 3D scena nel formato file supportato.<\/li>\n<\/ol>\n<p>In questo esempio, supponiamo che la scena sia creata da uno strumento CAD chiamato &ldquo;Egitto&rdquo; ed \u00e8 progettata da Manualdesk:<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ Initialize a 3D scene\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Set application\/tool name\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setApplicationName<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Egypt&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ Set application\/tool vendor name\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setApplicationVendor<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Manualdesk&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ We use ancient egyption measurement unit Pole\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setUnitName<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;pole&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ One Pole equals to 60cm\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setUnitScaleFactor<\/span><span class=\"o\">(<\/span><span class=\"n\">0<\/span><span class=\"o\">.<\/span><span class=\"na\">6<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getOutputFilePath<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;InformationToScene.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ Save scene to 3D supported file formats\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">FileFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">FBX7500ASCII<\/span><span class=\"o\">);<\/span><\/code><\/pre><\/div>\n\n      "},{"title":"Java: Crea una scena con forme primitive 3D","link":"https:\/\/docs.aspose.com\/3d\/it\/java\/create-scene-with-primitive-3d-shapes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/it\/java\/create-scene-with-primitive-3d-shapes\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nAspose.3D for Java API supporta forme primitive di 3D. Tutte le primitive parametrizzate verranno convertite automaticamente in mesh durante il salvataggio in qualsiasi formato di file di output supportato.\n<\/div>\n\n<h2 id=\"costruisci-una-scena-dalle-forme-primitive-3d\"><strong>Costruisci una scena dalle forme primitive 3D<\/strong><\/h2>\n<p>La modellazione \u00e8 il processo di pura creazione e Aspose.3D API supporta la creazione di una scena con forme primitive di 3D.<\/p>\n<h3 id=\"campione-di-programmazione\"><strong>Campione di programmazione<\/strong><\/h3>\n<p>Questo esempio di codice crea una scena con forme primitive di 3D e salva nel file FBX.<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Initialize a Scene object\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Create a Box model\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">createChildNode<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;box&#34;<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Box<\/span><span class=\"o\">());<\/span>\n<span class=\"c1\">\/\/ Create a Cylinder model\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">createChildNode<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;cylinder&#34;<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Cylinder<\/span><span class=\"o\">());<\/span>\n<span class=\"c1\">\/\/ Save drawing in the FBX format\n<\/span><span class=\"c1\"><\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getOutputFilePath<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">FileFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">FBX7500ASCII<\/span><span class=\"o\">);<\/span><\/code><\/pre><\/div>\n\n      "},{"title":"Java: Risparmia 3D mesh in formato binario personalizzato","link":"https:\/\/docs.aspose.com\/3d\/it\/java\/save-3d-meshes-in-custom-binary-format\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/it\/java\/save-3d-meshes-in-custom-binary-format\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nAspose.3D for Java API supporta l&rsquo;apertura di qualsiasi documento 3D supportato e quindi scrivere mesh nel file binario.\n<\/div>\n\n<h2 id=\"carica-3d-file-e-scrivi-mesh-in-formato-binario-personalizzato-campione-di-programmazione\"><strong>Carica 3D file e scrivi mesh in formato binario personalizzato campione di programmazione<\/strong><\/h2>\n<p>Accettare il metodo esposto dal membro RootNode nella classe <code>Scene<\/code> consente di visitare ogni sottododo. Lo snippet di codice di seguito consente di convertire solo le mesh.<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ load a 3D file\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"s\">&#34;test.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"cm\">\/*\n<\/span><span class=\"cm\">* 3D format demonstration is simple\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct File {\n<\/span><span class=\"cm\">*   MeshBlock blocks[];\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct Vertex {\n<\/span><span class=\"cm\">*   float x;\n<\/span><span class=\"cm\">*   float y;\n<\/span><span class=\"cm\">*   float z;\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct Triangle {\n<\/span><span class=\"cm\">*   int a;\n<\/span><span class=\"cm\">*   int b;\n<\/span><span class=\"cm\">*   int c;\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct MeshBlock {\n<\/span><span class=\"cm\">*   int numControlPoints;\n<\/span><span class=\"cm\">*   int numTriangles;\n<\/span><span class=\"cm\">*   Vertex vertices[numControlPoints];\n<\/span><span class=\"cm\">*   Triangle faces[numTriangles];\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\/<\/span>\n<span class=\"c1\">\/\/ open file for writing in binary mode\n<\/span><span class=\"c1\"><\/span><span class=\"k\">try<\/span> <span class=\"o\">(<\/span><span class=\"n\">DataOutputStream<\/span> <span class=\"n\">writer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">DataOutputStream<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">BufferedOutputStream<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">FileOutputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"s\">&#34;Save3DMeshesInCustomBinaryFormat_out&#34;<\/span><span class=\"o\">))))<\/span>\n<span class=\"o\">{<\/span>\n    <span class=\"c1\">\/\/ visit each descent nodes\n<\/span><span class=\"c1\"><\/span>    <span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">accept<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">NodeVisitor<\/span><span class=\"o\">(){<\/span>\n        <span class=\"nd\">@Override<\/span>\n        <span class=\"kd\">public<\/span> <span class=\"kt\">boolean<\/span> <span class=\"nf\">call<\/span><span class=\"o\">(<\/span><span class=\"n\">Node<\/span> <span class=\"n\">node<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"n\">Entity<\/span> <span class=\"n\">entity<\/span> <span class=\"o\">:<\/span> <span class=\"n\">node<\/span><span class=\"o\">.<\/span><span class=\"na\">getEntities<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"c1\">\/\/ only convert meshes, lights\/camera and other stuff will be ignored\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">if<\/span> <span class=\"o\">(!(<\/span><span class=\"n\">entity<\/span> <span class=\"k\">instanceof<\/span> <span class=\"n\">IMeshConvertible<\/span><span class=\"o\">))<\/span>\n                    <span class=\"k\">continue<\/span><span class=\"o\">;<\/span>\n                <span class=\"n\">Mesh<\/span> <span class=\"n\">m<\/span> <span class=\"o\">=<\/span> <span class=\"o\">((<\/span><span class=\"n\">IMeshConvertible<\/span><span class=\"o\">)<\/span> <span class=\"n\">entity<\/span><span class=\"o\">).<\/span><span class=\"na\">toMesh<\/span><span class=\"o\">();<\/span>\n                <span class=\"n\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Vector4<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">controlPoints<\/span> <span class=\"o\">=<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getControlPoints<\/span><span class=\"o\">();<\/span>\n                <span class=\"c1\">\/\/ triangulate the mesh, so triFaces will only store triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"kt\">int<\/span><span class=\"o\">[][]<\/span> <span class=\"n\">triFaces<\/span> <span class=\"o\">=<\/span> <span class=\"n\">PolygonModifier<\/span><span class=\"o\">.<\/span><span class=\"na\">triangulate<\/span><span class=\"o\">(<\/span><span class=\"n\">controlPoints<\/span><span class=\"o\">,<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getPolygons<\/span><span class=\"o\">());<\/span>\n                <span class=\"c1\">\/\/ gets the global transform matrix\n<\/span><span class=\"c1\"><\/span>                <span class=\"n\">Matrix4<\/span> <span class=\"n\">transform<\/span> <span class=\"o\">=<\/span> <span class=\"n\">node<\/span><span class=\"o\">.<\/span><span class=\"na\">getGlobalTransform<\/span><span class=\"o\">().<\/span><span class=\"na\">getTransformMatrix<\/span><span class=\"o\">();<\/span>\n                <span class=\"c1\">\/\/ write number of control points and triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\n                <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">.<\/span><span class=\"na\">length<\/span><span class=\"o\">);<\/span>\n                <span class=\"c1\">\/\/ write control points\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">();<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"c1\">\/\/ calculate the control points in world space and save them to file\n<\/span><span class=\"c1\"><\/span>                    <span class=\"n\">Vector4<\/span> <span class=\"n\">cp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Matrix4<\/span><span class=\"o\">.<\/span><span class=\"na\">mul<\/span><span class=\"o\">(<\/span><span class=\"n\">transform<\/span><span class=\"o\">,<\/span> <span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"n\">i<\/span><span class=\"o\">));<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span><span class=\"o\">);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span><span class=\"o\">);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span><span class=\"o\">);<\/span>\n                <span class=\"o\">}<\/span>\n                <span class=\"c1\">\/\/ write triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">triFaces<\/span><span class=\"o\">.<\/span><span class=\"na\">length<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">0<\/span><span class=\"o\">]);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">1<\/span><span class=\"o\">]);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">2<\/span><span class=\"o\">]);<\/span>\n                <span class=\"o\">}<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span><span class=\"o\">(<\/span><span class=\"n\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">});<\/span>\n<span class=\"o\">}<\/span><\/code><\/pre><\/div>\n\n      "}]}}