Узел Dot Product
Определяет проекцию одного вектора на другой и используется для расчета угла между векторами.
Узел FloatFunc
Позволяет рассчитывать значения некоторых функций (рис. 8.97).
Ехр - вычисляет значение экспоненты для вводимого числа.
Ln Ln10 - вычисляет соответственно натуральный логарифм и логарифм с основанием 10.
Sqrt - вычисляет квадратный корень числа, поданного на вход Value (рис. 8.98).
Float - отбрасывает дробную часть числа (округляет вниз) (рис. 8.99).
Узел Floatmathadd
Отличается от узла Math тем, что на вход можно задавать данные различного типа.
Узел Formula
Узел позволяет создавать и применять различные математические зависимости, использующие в качестве параметров значения на портах ввода узла.
Формула записывается в поле Formula окна менеджера атрибутов. Номера портов обозначаются с префиксом знака доллара. Например, $1 означает первый порт. Приняты следующие знаки арифметических действий и тригонометрические функции:
+ - сложение
- вычитание * - умножение / - деление
Л - возведение в степень ABS - абсолютное значение SIN - синус COS - косинус TAN - тангенс
SQRT - квадратный корень SQR - возведение в квадрат
Рассмотрим пример. Необходимо 7 возвести в квадрат и прибавить квадратный корень из двух.
В окне редактора XPresso располагаем узлы Formula, Result и соединяем их порты (рис. 8.103). Расчетную формулу вводим в поле параметра Formula.
Так как имена портов ввода не используем, то флажок Use Portnames должен быть сброшен. Результат виден внутри узла Result. Если бы в формуле были тригонометрические зависимости, то в выпадающем списке Angle Туре надо было бы выбрать единицы измерения для аргумента (радианы или градусы).
Исходные данные для расчета можно задавать также через порты ввода Value 1, Value 2 и т. д. Создадим два порта ввода узла Formula (рис. 8.104). Формула переписана с использованием не констант, а имен портов, которые состоят из префикса в виде знака доллара и порядкового номера порта $1, $2 и т. д.
Исходную информацию можно завести на порты ввода из узлов Constant (рис. 8.105).
Рассмотрим пример. Запрограммировать перемещение объекта вдоль оси 0Х.
Создадим объект примитив Cube. Разместим узлы, как показано на рис. 8.106. Здесь узел Cube использован дважды. В первом случае он используется для получения текущей информации о координате Cube по оси 0Х и имеет порт вывода Position X. Во втором случае он получает новое значение этой координаты и имеет порт ввода Position X.
Создадим два порта ввода на узле Formula. В один порт заведем текущую координату из узла Cube, а во второй запишем величину шага, на который будет увеличиваться значение координаты. В окне менеджера атрибутов в поле Parameter введем числовое значение этого шага, равное 1 м. В поле Formula запишем формулу в адресах портов узла $1 +$2.
Запустите анимацию. Убедитесь, что Cube непрерывно двигается вдоль оси ОХ. Чтобы ограничить его движение, можно применить узел MathAdd.
Узел Invert
Делит единицу на число, поданное на вход узла. На рис. 8.107 исходное число 2, в результате получаем