Ajout d'une transformation au nœud

TSR (Translation/Scaling/Rotation) sont le plus couramment utilisés dans les scénarios 3D, nous avons fourni une classe Transform pour y accéder dans Aspose.3D. Les transformations affines incluent :

  • Translation
  • Scaling
  • Rotation
  • Shear mapping
  • Squeeze mapping

Rotation par angles d’Euler

var aspose = aspose || {};

aspose.threed = require("aspose.threed");

// Initialiser l’objet scène
var scene = new aspose.threed.Scene();

// Initialiser le cylindre
var cylinder =new aspose.threed.Cylinder(2, 2, 10, 20, 1, false);

// Créer ChildNode
var Node=scene.getRootNode().createChildNode(cylinder);

// Angles d’Euler
Node.getTransform().setEulerAngles(new aspose.threed.Vector3(30, 40, 50));

// Définir la translation
Node.getTransform().setTranslation(new aspose.threed.Vector3(0, 0, 20));

// Sauvegarder
scene.save("TransformationToNode.obj");

Matrice de transformation personnalisée

Nous pouvons également utiliser Matrix directement :

var aspose = aspose || {};

aspose.threed = require("aspose.threed");

// Initialiser l’objet scène
var scene = new aspose.threed.Scene();

// Initialiser le cylindre
var cylinder =new aspose.threed.Cylinder(2, 2, 10, 20, 1, false);

// Créer ChildNode
var Node=scene.getRootNode().createChildNode(cylinder);

// Définir la matrice de translation personnalisée
Node.getTransform().setTransformMatrix(new aspose.threed.Matrix4(
    1, -0.3, 0, 0,
    0.4, 1, 0.3, 0,
    0, 0, 1, 0,
    0, 20, 0, 1
));

// Sauvegarder
scene.save("TransformationToNode.obj");