Добавление преобразования к узлу

TSR (Translation/Scaling/Rotation) наиболее часто используются в 3D сценариях, мы предоставили класс Transform для доступа к этим в Aspose.3D. Аффинные преобразования включают:

  • Translation (Перенос)
  • Scaling (Масштабирование)
  • Rotation (Вращение)
  • Shear mapping (Сдвиг)
  • Squeeze mapping (Сжатие)

Вращение с помощью углов Эйлера

var aspose = aspose || {};

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

// Инициализация объекта сцены
var scene = new aspose.threed.Scene();

// Инициализация цилиндра
var cylinder =new aspose.threed.Cylinder(2, 2, 10, 20, 1, false);

// Создание ChildNode
var Node=scene.getRootNode().createChildNode(cylinder);

// Углы Эйлера
Node.getTransform().setEulerAngles(new aspose.threed.Vector3(30, 40, 50));

// Установка переноса
Node.getTransform().setTranslation(new aspose.threed.Vector3(0, 0, 20));

// Сохранение
scene.save("TransformationToNode.obj");

Пользовательская матрица преобразования

Мы также можем использовать Matrix напрямую:

var aspose = aspose || {};

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

// Инициализация объекта сцены
var scene = new aspose.threed.Scene();

// Инициализация цилиндра
var cylinder =new aspose.threed.Cylinder(2, 2, 10, 20, 1, false);

// Создание ChildNode
var Node=scene.getRootNode().createChildNode(cylinder);

// Установка пользовательской матрицы переноса
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
));

// Сохранение
scene.save("TransformationToNode.obj");