Здесь показаны различия между двумя версиями данной страницы.
jazyk:objects [2014/05/16 10:51] vadmin |
jazyk:objects [2023/05/08 17:44] (текущий) |
||
---|---|---|---|
Строка 22: | Строка 22: | ||
* Способ 2: | * Способ 2: | ||
* var pos = obj.position.clone(); | * var pos = obj.position.clone(); | ||
- | Операции над позицией | + | //Операции над позицией// |
- | • Получить длину (модуль вектора) | + | * Получить длину (модуль вектора) |
- | – pos.length() | + | * pos.length() |
- | • Нормализовать вектор | + | * Нормализовать вектор |
- | – pos.normalize() | + | * pos.normalize() |
- | • Векторное произведение | + | * Векторное произведение |
- | – pos.cross( new Position3D(0,0,1)); | + | * pos.cross( new Position3D(0,0,1)); |
- | • Умножить вектор на скаляр | + | * Умножить вектор на скаляр |
- | – pos.mult( scalar); | + | * pos.mult( scalar); |
- | • Поделить позицию на число | + | * Поделить позицию на число |
- | – pos.div(10); | + | * pos.div(10); |
- | • Интерполяция с другой позицией с коэффициентом koef | + | * Интерполяция с другой позицией с коэффициентом koef |
- | – pos.blend(pos2, koef); | + | * pos.blend(pos2, koef); |
- | • Узнать угол поворота между вектором и другим вектором | + | * Узнать угол поворота между вектором и другим вектором |
- | – var ang = pos.angle(pos2); | + | * var ang = pos.angle(pos2); |
- | 3.2. Свойство rotation. | + | ====2. Свойство rotation==== |
- | Задание поворота | + | //Задание поворота// |
- | • obj.rotation = new Rotation3D(x, y, z, angle), где | + | * obj.rotation = new Rotation3D(x, y, z, angle), где |
- | – x, y, z – ось вращения | + | * x, y, z – ось вращения |
- | – angle – угол в градусах | + | * angle – угол в градусах |
- | Внимание! Не следует пытаться задать отдельные компоненты поворота, это будет работать неправильно, т.к. фактически поворот является кватернионом, который для правильного использования должен быть постоянно в нормализованном состоянии. Нормализация производится после изменения каждого компонента. | + | //**Внимание!** Не следует пытаться задать отдельные компоненты поворота, это будет работать неправильно, т.к. фактически поворот является кватернионом, который для правильного использования должен быть постоянно в нормализованном состоянии. Нормализация производится после изменения каждого компонента.// |
- | Чтение (копирование) поворота | + | //Чтение (копирование) поворота// |
- | • Способ 1: | + | * Способ 1: |
- | – var x = obj.rotation.x; | + | * var x = obj.rotation.x; |
- | – var y = obj.rotation.y; | + | * var y = obj.rotation.y; |
- | – var z = obj.rotation.z; | + | * var z = obj.rotation.z; |
- | – var angle = obj.rotation.w; | + | * var angle = obj.rotation.w; |
- | • Способ 2: | + | * Способ 2: |
- | – var rtn = obj.rotation.clone(); | + | * var rtn = obj.rotation.clone(); |
- | Операции над поворотом | + | //Операции над поворотом// |
- | • Прибавить один поворот к другому | + | * Прибавить один поворот к другому |
- | – rtn.mult(rotation2); | + | * rtn.mult(rotation2); |
- | • Повернуть позицию вокруг начала координат | + | * Повернуть позицию вокруг начала координат |
- | – pos.mult(rotation); | + | * pos.mult(rotation); |
- | • Обратный поворот | + | * Обратный поворот |
- | – rotation. conjugate(); | + | * rotation. conjugate(); |
- | • Интерполяция с коэффициентом koef | + | * Интерполяция с коэффициентом koef |
- | – rotation.blend(secondRTN, koef); | + | * rotation.blend(secondRTN, koef); |
- | 3.3. Свойство scale. | + | ====3. Свойство scale==== |
- | Задание масштаба | + | //Задание масштаба// |
- | • Способ 1: | + | * Способ 1: |
- | – obj.scale.x = 10; | + | * obj.scale.x = 10; |
- | – obj.scale.y = 12; | + | * obj.scale.y = 12; |
- | – obj.scale.z = 15; | + | * obj.scale.z = 15; |
- | • Способ 2: | + | * Способ 2: |
- | – obj.scale = new Scale3D(10, 12, 15); | + | * obj.scale = new Scale3D(10, 12, 15); |
- | Чтение (копирование) масштаба | + | //Чтение (копирование) масштаба// |
- | • Способ 1: | + | * Способ 1: |
- | – var x = obj.scale.x; | + | * var x = obj.scale.x; |
- | – var y = obj.scale.y; | + | * var y = obj.scale.y; |
- | – var z = obj.scale.z; | + | * var z = obj.scale.z; |
- | • Способ 2: | + | * Способ 2: |
- | – var scl = obj.scale.clone(); | + | * var scl = obj.scale.clone(); |