:github_url: hide .. _class_Vector3: Vector3 ======= 3D-вектор, що використовує координати з рухомою комою. .. rst-class:: classref-introduction-group Опис -------- 3-елементна структура, яка може використовуватися для представлення 3D-координат або будь-якої іншої трійки числових значень. Вона використовує координати з рухомою комою. За замовчуванням ці значення мають 32-бітну точність, на відміну від :ref:`float`, який завжди має 64-бітну точність. Якщо потрібна подвійна точність, скомпілюйте рушій з опцією ``precision=double``. Див. також :ref:`Vector3i` для цілочисельного аналога. \ **Примітка:** У булевому контексті **Vector3** буде оцінюватися як ``false``, якщо дорівнює ``Vector3(0, 0, 0)``. В інших випадках **Vector3** завжди буде оцінюватися як ``true``. .. rst-class:: classref-introduction-group Посібники ------------------ - :doc:`Покажчик математичної документації <../tutorials/math/index>` - :doc:`Векторна математика <../tutorials/math/vector_math>` - :doc:`Поглиблена векторна математика <../tutorials/math/vectors_advanced>` - `3Blue1Brown Сутність лінійної алгебри `__ - `Демонстраційне перетворення матриці `__ - `Всі 3D демо `__ .. rst-class:: classref-reftable-group Властивості ---------------------- .. table:: :widths: auto +---------------------------+------------------------------------+---------+ | :ref:`float` | :ref:`x` | ``0.0`` | +---------------------------+------------------------------------+---------+ | :ref:`float` | :ref:`y` | ``0.0`` | +---------------------------+------------------------------------+---------+ | :ref:`float` | :ref:`z` | ``0.0`` | +---------------------------+------------------------------------+---------+ .. rst-class:: classref-reftable-group Конструктори ------------------------ .. table:: :widths: auto +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`Vector3`\ (\ ) | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`Vector3`\ (\ from\: :ref:`Vector3`\ ) | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`Vector3`\ (\ from\: :ref:`Vector3i`\ ) | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`Vector3`\ (\ x\: :ref:`float`, y\: :ref:`float`, z\: :ref:`float`\ ) | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Методи ------------ .. table:: :widths: auto +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`abs`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`angle_to`\ (\ to\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`bezier_derivative`\ (\ control_1\: :ref:`Vector3`, control_2\: :ref:`Vector3`, end\: :ref:`Vector3`, t\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`bezier_interpolate`\ (\ control_1\: :ref:`Vector3`, control_2\: :ref:`Vector3`, end\: :ref:`Vector3`, t\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`bounce`\ (\ n\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`ceil`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`clamp`\ (\ min\: :ref:`Vector3`, max\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`clampf`\ (\ min\: :ref:`float`, max\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`cross`\ (\ with\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`cubic_interpolate`\ (\ b\: :ref:`Vector3`, pre_a\: :ref:`Vector3`, post_b\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`cubic_interpolate_in_time`\ (\ b\: :ref:`Vector3`, pre_a\: :ref:`Vector3`, post_b\: :ref:`Vector3`, weight\: :ref:`float`, b_t\: :ref:`float`, pre_a_t\: :ref:`float`, post_b_t\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`direction_to`\ (\ to\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`distance_squared_to`\ (\ to\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`distance_to`\ (\ to\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`dot`\ (\ with\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`floor`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`inverse`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_equal_approx`\ (\ to\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_finite`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_normalized`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_zero_approx`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`length`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`length_squared`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`lerp`\ (\ to\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`limit_length`\ (\ length\: :ref:`float` = 1.0\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`max`\ (\ with\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`max_axis_index`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`maxf`\ (\ with\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`min`\ (\ with\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`min_axis_index`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`minf`\ (\ with\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`move_toward`\ (\ to\: :ref:`Vector3`, delta\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`normalized`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`octahedron_decode`\ (\ uv\: :ref:`Vector2`\ ) |static| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`octahedron_encode`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Basis` | :ref:`outer`\ (\ with\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`posmod`\ (\ mod\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`posmodv`\ (\ modv\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`project`\ (\ b\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`reflect`\ (\ n\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`rotated`\ (\ axis\: :ref:`Vector3`, angle\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`round`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`sign`\ (\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`signed_angle_to`\ (\ to\: :ref:`Vector3`, axis\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`slerp`\ (\ to\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`slide`\ (\ n\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`snapped`\ (\ step\: :ref:`Vector3`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`snappedf`\ (\ step\: :ref:`float`\ ) |const| | +-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Оператори ------------------ .. table:: :widths: auto +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator !=`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`Basis`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`Quaternion`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`Transform3D`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`float`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator *`\ (\ right\: :ref:`int`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator +`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator -`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator /`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator /`\ (\ right\: :ref:`float`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator /`\ (\ right\: :ref:`int`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator \<`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator \<=`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator ==`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator >`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`operator >=`\ (\ right\: :ref:`Vector3`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`float` | :ref:`operator []`\ (\ index\: :ref:`int`\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator unary+`\ (\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ | :ref:`Vector3` | :ref:`operator unary-`\ (\ ) | +-------------------------------+----------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Переліки ---------------- .. _enum_Vector3_Axis: .. rst-class:: classref-enumeration enum **Axis**: :ref:`🔗` .. _class_Vector3_constant_AXIS_X: .. rst-class:: classref-enumeration-constant :ref:`Axis` **AXIS_X** = ``0`` Значення переліку для осі X. Повертається методами :ref:`max_axis_index()` і :ref:`min_axis_index()`. .. _class_Vector3_constant_AXIS_Y: .. rst-class:: classref-enumeration-constant :ref:`Axis` **AXIS_Y** = ``1`` Значення переліку для осі Y. Повертається методами :ref:`max_axis_index()` і :ref:`min_axis_index()`. .. _class_Vector3_constant_AXIS_Z: .. rst-class:: classref-enumeration-constant :ref:`Axis` **AXIS_Z** = ``2`` Значення переліку для осі Z. Повертається методами :ref:`max_axis_index()` і :ref:`min_axis_index()`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Константи ------------------ .. _class_Vector3_constant_ZERO: .. rst-class:: classref-constant **ZERO** = ``Vector3(0, 0, 0)`` :ref:`🔗` Нульовий вектор — вектор, у якого всі компоненти встановлені в ``0``. .. _class_Vector3_constant_ONE: .. rst-class:: classref-constant **ONE** = ``Vector3(1, 1, 1)`` :ref:`🔗` Одиничний вектор — вектор, у якого всі компоненти встановлені в ``1``. .. _class_Vector3_constant_INF: .. rst-class:: classref-constant **INF** = ``Vector3(inf, inf, inf)`` :ref:`🔗` Вектор нескінченності — вектор, у якого всі компоненти встановлені в :ref:`@GDScript.INF`. .. _class_Vector3_constant_LEFT: .. rst-class:: classref-constant **LEFT** = ``Vector3(-1, 0, 0)`` :ref:`🔗` Вектор лівої одиниці. Представляє місцевий напрямок зліва, а також глобальний напрямок заходу. .. _class_Vector3_constant_RIGHT: .. rst-class:: classref-constant **RIGHT** = ``Vector3(1, 0, 0)`` :ref:`🔗` Вектор правого блоку. Представляє місцевий напрямок права, а також глобальний напрямок на схід. .. _class_Vector3_constant_UP: .. rst-class:: classref-constant **UP** = ``Vector3(0, 1, 0)`` :ref:`🔗` Одиничний вектор вверх. .. _class_Vector3_constant_DOWN: .. rst-class:: classref-constant **DOWN** = ``Vector3(0, -1, 0)`` :ref:`🔗` Одиничний вектор вниз. .. _class_Vector3_constant_FORWARD: .. rst-class:: classref-constant **FORWARD** = ``Vector3(0, 0, -1)`` :ref:`🔗` Одиничний вектор вперед. Представляє локальний напрямок вперед і глобальний напрямок на північ. Майте на увазі, що напрямок вперед для світла, камер тощо відрізняється від 3D-ресурсів, таких як персонажі, які за домовленістю обернені до камери. Використовуйте константи :ref:`MODEL_FRONT` та подібні під час роботи в просторі 3D-ресурсів. .. _class_Vector3_constant_BACK: .. rst-class:: classref-constant **BACK** = ``Vector3(0, 0, 1)`` :ref:`🔗` Одиничний вектор назад. Представляє локальний напрямок назад і глобальний напрямок на південь. .. _class_Vector3_constant_MODEL_LEFT: .. rst-class:: classref-constant **MODEL_LEFT** = ``Vector3(1, 0, 0)`` :ref:`🔗` Одиничний вектор, спрямований у лівий бік імпортованих 3D-ресурсів. .. _class_Vector3_constant_MODEL_RIGHT: .. rst-class:: classref-constant **MODEL_RIGHT** = ``Vector3(-1, 0, 0)`` :ref:`🔗` Одиничний вектор, спрямований у правий бік імпортованих 3D-ресурсів. .. _class_Vector3_constant_MODEL_TOP: .. rst-class:: classref-constant **MODEL_TOP** = ``Vector3(0, 1, 0)`` :ref:`🔗` Одиничний вектор, спрямований у верхній бік (вгору) імпортованих 3D-ресурсів. .. _class_Vector3_constant_MODEL_BOTTOM: .. rst-class:: classref-constant **MODEL_BOTTOM** = ``Vector3(0, -1, 0)`` :ref:`🔗` Одиничний вектор, спрямований у нижній бік (вниз) імпортованих 3D-ресурсів. .. _class_Vector3_constant_MODEL_FRONT: .. rst-class:: classref-constant **MODEL_FRONT** = ``Vector3(0, 0, 1)`` :ref:`🔗` Одиничний вектор, спрямований у передній бік (обличчям вперед) імпортованих 3D-ресурсів. .. _class_Vector3_constant_MODEL_REAR: .. rst-class:: classref-constant **MODEL_REAR** = ``Vector3(0, 0, -1)`` :ref:`🔗` Одиничний вектор, спрямований у задній бік (назад) імпортованих 3D-ресурсів. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи властивостей ------------------------------------ .. _class_Vector3_property_x: .. rst-class:: classref-property :ref:`float` **x** = ``0.0`` :ref:`🔗` Векторний компонент X. Також доступний за допомогою індексної позиції ``[0]``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_property_y: .. rst-class:: classref-property :ref:`float` **y** = ``0.0`` :ref:`🔗` Векторний компонент Y. Також доступний за допомогою індексної позиції ``[1]``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_property_z: .. rst-class:: classref-property :ref:`float` **z** = ``0.0`` :ref:`🔗` Векторний компонент Z. Також доступний за допомогою індексної позиції ``[2]``. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи конструкторів -------------------------------------- .. _class_Vector3_constructor_Vector3: .. rst-class:: classref-constructor :ref:`Vector3` **Vector3**\ (\ ) :ref:`🔗` Створює стандартну ініціалізацію **Vector3** з усіма компонентами, встановленими на ``0``. .. rst-class:: classref-item-separator ---- .. rst-class:: classref-constructor :ref:`Vector3` **Vector3**\ (\ from\: :ref:`Vector3`\ ) Створює **Vector3** як копію заданого **Vector3**. .. rst-class:: classref-item-separator ---- .. rst-class:: classref-constructor :ref:`Vector3` **Vector3**\ (\ from\: :ref:`Vector3i`\ ) Створює новий **Vector3** з :ref:`Vector3i`. .. rst-class:: classref-item-separator ---- .. rst-class:: classref-constructor :ref:`Vector3` **Vector3**\ (\ x\: :ref:`float`, y\: :ref:`float`, z\: :ref:`float`\ ) Повертає **Vector3** з заданими компонентами. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи методів -------------------------- .. _class_Vector3_method_abs: .. rst-class:: classref-method :ref:`Vector3` **abs**\ (\ ) |const| :ref:`🔗` Повертає новий вектор з усіма компонентами в абсолютних значеннях (тобто позитиву). .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_angle_to: .. rst-class:: classref-method :ref:`float` **angle_to**\ (\ to\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає невід’ємний мінімальний кут до заданого вектора, в радіанах. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_bezier_derivative: .. rst-class:: classref-method :ref:`Vector3` **bezier_derivative**\ (\ control_1\: :ref:`Vector3`, control_2\: :ref:`Vector3`, end\: :ref:`Vector3`, t\: :ref:`float`\ ) |const| :ref:`🔗` Повертає похідну в заданій точці ``t`` на `Кривій Безьє `__, визначеній цим вектором і заданими точками ``control_1``, ``control_2``, та ``end``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_bezier_interpolate: .. rst-class:: classref-method :ref:`Vector3` **bezier_interpolate**\ (\ control_1\: :ref:`Vector3`, control_2\: :ref:`Vector3`, end\: :ref:`Vector3`, t\: :ref:`float`\ ) |const| :ref:`🔗` Повертає точку в заданій точці ``t`` на `Кривій Безьє `__, визначеній цим вектором і заданими точками ``control_1``, ``control_2``, та ``end``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_bounce: .. rst-class:: classref-method :ref:`Vector3` **bounce**\ (\ n\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає вектор, «відбитий» від площини, визначеної заданою нормаллю ``n``. \ **Примітка:** :ref:`bounce()` виконує операцію, яку більшість рушіїв і фреймворків називають ``reflect()``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_ceil: .. rst-class:: classref-method :ref:`Vector3` **ceil**\ (\ ) |const| :ref:`🔗` Повертає новий вектор, у якого всі компоненти округлені до більшого цілого (до додатної нескінченності). .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_clamp: .. rst-class:: classref-method :ref:`Vector3` **clamp**\ (\ min\: :ref:`Vector3`, max\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає новий вектор, у якого всі компоненти обмежені між відповідними компонентами ``min`` і ``max``, викликаючи :ref:`@GlobalScope.clamp()` для кожного компоненту. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_clampf: .. rst-class:: classref-method :ref:`Vector3` **clampf**\ (\ min\: :ref:`float`, max\: :ref:`float`\ ) |const| :ref:`🔗` Повертає новий вектор, у якого всі компоненти обмежені між ``min`` і ``max``, викликаючи :ref:`@GlobalScope.clamp()` для кожного компоненту. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_cross: .. rst-class:: classref-method :ref:`Vector3` **cross**\ (\ with\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає векторний добуток цього вектора і ``with``. Це повертає вектор, перпендикулярний до обох векторів (цього і ``with``), що відповідає вектору нормалі площини, визначеної цими двома векторами. Оскільки існує два таких вектори в протилежних напрямках, цей метод повертає той, що визначається правилом правої руки. Якщо два вектори паралельні, метод повертає нульовий вектор, що корисно для перевірки паралельності векторів. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_cubic_interpolate: .. rst-class:: classref-method :ref:`Vector3` **cubic_interpolate**\ (\ b\: :ref:`Vector3`, pre_a\: :ref:`Vector3`, post_b\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| :ref:`🔗` Виконує кубічну інтерполяцію між цим вектором і ``b``, використовуючи ``pre_a`` і ``post_b`` як контрольні точки, та повертає результат у позиції ``weight``. ``weight`` знаходиться в діапазоні від 0.0 до 1.0 і визначає ступінь інтерполяції. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_cubic_interpolate_in_time: .. rst-class:: classref-method :ref:`Vector3` **cubic_interpolate_in_time**\ (\ b\: :ref:`Vector3`, pre_a\: :ref:`Vector3`, post_b\: :ref:`Vector3`, weight\: :ref:`float`, b_t\: :ref:`float`, pre_a_t\: :ref:`float`, post_b_t\: :ref:`float`\ ) |const| :ref:`🔗` Виконує кубічну інтерполяцію між цим вектором і ``b``, використовуючи ``pre_a`` і ``post_b`` як контрольні точки, та повертає результат у позиції ``weight``. ``weight`` знаходиться в діапазоні від 0.0 до 1.0 і визначає ступінь інтерполяції. Може виконувати плавнішу інтерполяцію, ніж :ref:`cubic_interpolate()`), завдяки використанню значень часу. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_direction_to: .. rst-class:: classref-method :ref:`Vector3` **direction_to**\ (\ to\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає нормалізований вектор, що вказує від цього вектора до ``to``. Це еквівалентно виразу ``(b - a).normalized()``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_distance_squared_to: .. rst-class:: classref-method :ref:`float` **distance_squared_to**\ (\ to\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає квадрат відстані між цим вектором і ``to``. Цей метод працює швидше, ніж :ref:`distance_to()`, тому надавайте йому перевагу, якщо потрібно порівнювати вектори або використовувати квадрат відстані у формулі. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_distance_to: .. rst-class:: classref-method :ref:`float` **distance_to**\ (\ to\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає відстань між цим вектором і ``до``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_dot: .. rst-class:: classref-method :ref:`float` **dot**\ (\ with\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає скалярний добуток цього вектора і ``with``. Це можна використовувати для порівняння кута між двома векторами. Наприклад, цей метод можна застосувати, щоб визначити, чи ворог дивиться на гравця. Скалярний добуток буде ``0`` для прямого кута (90 градусів), більший за 0, якщо кут менший за 90 градусів і менший за 0, якщо кут більший за 90 градусів. При використанні одиничних (нормалізованих) векторів результат завжди буде між ``-1.0`` (кут 180 градусів), коли вектори спрямовані в протилежних напрямках, та ``1.0`` (кут 0 градусів), коли вектори співнаправлені. \ **Примітка:** ``a.dot(b)`` еквівалентно ``b.dot(a)``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_floor: .. rst-class:: classref-method :ref:`Vector3` **floor**\ (\ ) |const| :ref:`🔗` Повертає новий вектор, у якого всі компоненти округлені вниз (до від'ємної нескінченності). .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_inverse: .. rst-class:: classref-method :ref:`Vector3` **inverse**\ (\ ) |const| :ref:`🔗` Повертає обернений вектор. Це те саме, що ``Vector3(1.0 / v.x, 1.0 / v.y, 1.0 / v.z)``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_is_equal_approx: .. rst-class:: classref-method :ref:`bool` **is_equal_approx**\ (\ to\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає ``true``, якщо цей вектор і ``to`` є приблизно рівними, викликаючи :ref:`@GlobalScope.is_equal_approx()` для кожного компоненту. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_is_finite: .. rst-class:: classref-method :ref:`bool` **is_finite**\ (\ ) |const| :ref:`🔗` Повертає ``true``, якщо цей вектор є скінченним, викликаючи :ref:`@GlobalScope.is_finite()` на кожному компоненту. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_is_normalized: .. rst-class:: classref-method :ref:`bool` **is_normalized**\ (\ ) |const| :ref:`🔗` Повертає ``true``, якщо вектор нормалізований, тобто його довжина приблизно дорівнює 1. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_is_zero_approx: .. rst-class:: classref-method :ref:`bool` **is_zero_approx**\ (\ ) |const| :ref:`🔗` Повертає ``true``, якщо значення цього вектора приблизно дорівнюють нулю, викликаючи :ref:`@GlobalScope.is_zero_approx()` на кожному компоненті. Цей метод працює швидше, ніж використання :ref:`is_equal_approx()`, із одним значенням як нульовий вектор. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_length: .. rst-class:: classref-method :ref:`float` **length**\ (\ ) |const| :ref:`🔗` Повертає довжину (величину) цього вектору. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_length_squared: .. rst-class:: classref-method :ref:`float` **length_squared**\ (\ ) |const| :ref:`🔗` Повертає квадрат довжини (квадрат величини) цього вектора. Цей метод працює швидше, ніж :ref:`length()`, тому віддавайте йому перевагу, якщо вам потрібно порівняти вектори або потрібен квадрат відстані для якоїсь формули. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_lerp: .. rst-class:: classref-method :ref:`Vector3` **lerp**\ (\ to\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| :ref:`🔗` Повертає результат лінійної інтерполяції між цим вектором та ``to`` на величину ``weight``. Значення ``weight`` повинно знаходитися в діапазоні від ``0.0`` до ``1.0`` і представляє ступінь інтерполяції. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_limit_length: .. rst-class:: classref-method :ref:`Vector3` **limit_length**\ (\ length\: :ref:`float` = 1.0\ ) |const| :ref:`🔗` Повертає вектор із максимальною довжиною, обмежуючи його довжину до ``length``. Якщо вектор нескінченний, результат не визначений. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_max: .. rst-class:: classref-method :ref:`Vector3` **max**\ (\ with\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає вектор, кожен компонент якого є максимальним серед відповідних компонентів цього вектора та вектора ``with``. Еквівалентно ``Vector3(maxf(x, with.x), maxf(y, with.y), maxf(z, with.z))``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_max_axis_index: .. rst-class:: classref-method :ref:`int` **max_axis_index**\ (\ ) |const| :ref:`🔗` Повертає вісь найвищого значення вектора. ``AXIS_*`` константи. Якщо всі компоненти рівні, цей метод повертає :ref:`AXIS_X`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_maxf: .. rst-class:: classref-method :ref:`Vector3` **maxf**\ (\ with\: :ref:`float`\ ) |const| :ref:`🔗` Повертає компонентний максимум цього вектора і ``with``, еквівалентно ``Vector3(maxf(x, with), maxf(y, with), maxf(z, with))``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_min: .. rst-class:: classref-method :ref:`Vector3` **min**\ (\ with\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає вектор, кожен компонент якого є мінімальним серед відповідного компонента цього вектора та вектора ``with``. Еквівалентно ``Vector3(minf(x, with.x), minf(y, with.y), minf(z, with.z))``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_min_axis_index: .. rst-class:: classref-method :ref:`int` **min_axis_index**\ (\ ) |const| :ref:`🔗` Повертає вісь найнижчого значення вектора. ``AXIS_*`` константи. Якщо всі компоненти рівні, цей метод повертає :ref:`AXIS_Z`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_minf: .. rst-class:: classref-method :ref:`Vector3` **minf**\ (\ with\: :ref:`float`\ ) |const| :ref:`🔗` Повертає компонентний мінімум цього вектора та ``with``. Еквівалентно ``Vector3(minf(x, with), minf(y, with), minf(z, with))``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_move_toward: .. rst-class:: classref-method :ref:`Vector3` **move_toward**\ (\ to\: :ref:`Vector3`, delta\: :ref:`float`\ ) |const| :ref:`🔗` Повертає новий вектор, зміщений у напрямку ``to`` на фіксовану величину ``delta``. Не виходить за межі кінцевого значення. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_normalized: .. rst-class:: classref-method :ref:`Vector3` **normalized**\ (\ ) |const| :ref:`🔗` Повертає результат масштабування вектора до одиничної довжини. Еквівалентно ``v / v.length()``. Повертає ``(0, 0, 0)``, якщо ``v.length() == 0``. Див. також :ref:`is_normalized()`. \ **Примітка:** Ця функція може повертати некоректні значення, якщо довжина вхідного вектора наближена до нуля. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_octahedron_decode: .. rst-class:: classref-method :ref:`Vector3` **octahedron_decode**\ (\ uv\: :ref:`Vector2`\ ) |static| :ref:`🔗` Повертає **Vector3** із октаедрично стиснутої форми, створеної за допомогою :ref:`octahedron_encode()` (збереженої як :ref:`Vector2`). .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_octahedron_encode: .. rst-class:: classref-method :ref:`Vector2` **octahedron_encode**\ (\ ) |const| :ref:`🔗` Повертає октаедрично закодовану (oct32) форму цього **Vector3** у вигляді :ref:`Vector2`. Оскільки :ref:`Vector2` займає на 1/3 менше пам’яті порівняно з **Vector3**, цей метод стиснення дозволяє передавати більшу кількість нормалізованих (:ref:`normalized()`) векторів **Vector3** без збільшення вимог до пам’яті чи сховища. Див. також :ref:`octahedron_decode()`. \ **Примітка:** :ref:`octahedron_encode()` можна застосовувати лише до нормалізованих (:ref:`normalized()`) векторів. Функція *не* перевіряє, чи є **Vector3** нормалізованим, і поверне значення, яке не декодується у вихідний вектор, якщо вхідний **Vector3** не нормалізований. \ **Примітка:** Октаедричне стиснення є *з втратами*, хоча візуальні відмінності зазвичай непомітні в реальних сценаріях. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_outer: .. rst-class:: classref-method :ref:`Basis` **outer**\ (\ with\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає зовнішній добуток із ``with``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_posmod: .. rst-class:: classref-method :ref:`Vector3` **posmod**\ (\ mod\: :ref:`float`\ ) |const| :ref:`🔗` Повертає вектор, який складається з :ref:`@GlobalScope.fposmod()` компонентів цього вектора та ``mod``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_posmodv: .. rst-class:: classref-method :ref:`Vector3` **posmodv**\ (\ modv\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає вектор, який складається з :ref:`@GlobalScope.fposmod()` компонентів цього вектора та компонентів ``modv``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_project: .. rst-class:: classref-method :ref:`Vector3` **project**\ (\ b\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає новий вектор, отриманий проєкцією цього вектора на заданий вектор ``b``. Отриманий вектор буде паралельним до ``b``. Див. також :ref:`slide()`. \ **Примітка:** Якщо ``b`` є нульовим вектором, компоненти отриманого вектора будуть рівні :ref:`@GDScript.NAN`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_reflect: .. rst-class:: classref-method :ref:`Vector3` **reflect**\ (\ n\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає результат відбиття вектора через площину, визначену заданим вектором нормалі ``n``. \ **Примітка:** :ref:`reflect()` відрізняється від того, що інші рушії та фреймворки називають ``reflect()``. В інших рушіях ``reflect()`` повертає результат вектора, відбитого заданою площиною. Таким чином, відбиття проходить через заданий вектор нормалі. Тоді як у Godot відбиття проходить через площину і може розглядатися як відскок від нормалі. Див. також :ref:`bounce()`, який робить те, що більшість рушіїв називають ``reflect()``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_rotated: .. rst-class:: classref-method :ref:`Vector3` **rotated**\ (\ axis\: :ref:`Vector3`, angle\: :ref:`float`\ ) |const| :ref:`🔗` Повертає результат обертання цього вектора навколо заданої осі ``axis`` на кут ``angle`` (у радіанах). Ось має бути нормалізованим вектором. Див. також :ref:`@GlobalScope.deg_to_rad()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_round: .. rst-class:: classref-method :ref:`Vector3` **round**\ (\ ) |const| :ref:`🔗` Повертає новий вектор, у якому всі компоненти округлені до найближчого цілого числа. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_sign: .. rst-class:: classref-method :ref:`Vector3` **sign**\ (\ ) |const| :ref:`🔗` Повертає новий вектор, у якому кожен компонент приймає значення ``1.0``, якщо він додатний, ``-1.0``, якщо від'ємний, і ``0.0``, якщо нульовий. Результат ідентичний виклику :ref:`@GlobalScope.sign()` для кожного компонента. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_signed_angle_to: .. rst-class:: classref-method :ref:`float` **signed_angle_to**\ (\ to\: :ref:`Vector3`, axis\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає кут зі знаком до заданого вектора, в радіанах. Знак кута є додатнім при обертанні проти годинникової стрілки та від'ємним — за годинниковою стрілкою, якщо дивитися зі сторони, вказаної віссю ``axis``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_slerp: .. rst-class:: classref-method :ref:`Vector3` **slerp**\ (\ to\: :ref:`Vector3`, weight\: :ref:`float`\ ) |const| :ref:`🔗` Повертає результат сферичної лінійної інтерполяції між цим вектором та ``to``, на величину ``weight``. ``weight`` знаходиться в діапазоні від 0,0 до 1,0, що представляє величину інтерполяції. Цей метод також обробляє інтерполяцію довжин, якщо вхідні вектори мають різну довжину. Для окремого випадку, коли один або обидва вхідні вектори мають нульову довжину, цей метод поводиться як :ref:`lerp()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_slide: .. rst-class:: classref-method :ref:`Vector3` **slide**\ (\ n\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає новий вектор, отриманий в результаті ковзання цього вектора вздовж площини з нормаллю ``n``. Отриманий новий вектор є перпендикулярним до ``n`` і еквівалентний цьому вектору мінус його проєкція на ``n``. Дивіться також :ref:`project()`. \ **Примітка:** Вектор ``n`` має бути нормалізованим. Дивіться також :ref:`normalized()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_snapped: .. rst-class:: classref-method :ref:`Vector3` **snapped**\ (\ step\: :ref:`Vector3`\ ) |const| :ref:`🔗` Повертає новий вектор, кожна компонента якого прив'язана до найближчого кратного відповідної компоненти у векторі ``step``. Це також можна використовувати для заокруглення компонент до довільної кількості знаків після коми. .. rst-class:: classref-item-separator ---- .. _class_Vector3_method_snappedf: .. rst-class:: classref-method :ref:`Vector3` **snappedf**\ (\ step\: :ref:`float`\ ) |const| :ref:`🔗` Повертає новий вектор, кожна компонента якого прив'язана до найближчого кратного значення ``step``. Це також можна використовувати для заокруглення компонент до довільної кількості знаків після коми. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описи операторів -------------------------------- .. _class_Vector3_operator_neq_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator !=**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Повертає ``true``, якщо вектори не рівні. \ **Примітка:** Через помилки точності з плаваючою комою, краще використати :ref:`is_equal_approx()`, який є більш надійним. \ **Примітка:** Вектори з елементами :ref:`@GDScript.NAN` не поводяться так само, як інші вектори. Тому результати цього оператора можуть бути неточними, якщо включено NaN. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_Basis: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`Basis`\ ) :ref:`🔗` Обернено трансформує (множить) вектор **Vector3** на задану матрицю :ref:`Basis` за умови, що базис є ортонормованим (тобто обертання/віддзеркалення припустимі, а масштабування/зкіс — ні). Вираз ``vector * basis`` еквівалентний до ``basis.transposed() * vector``. Дивіться :ref:`Basis.transposed()`. Для трансформації за допомогою оберненого неортонормованого базису (наприклад, з масштабуванням) можна натомість використовувати ``basis.inverse() * vector``. Дивіться :ref:`Basis.inverse()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_Quaternion: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`Quaternion`\ ) :ref:`🔗` Обернено трансформує (множить) вектор **Vector3** на заданий кватерніон :ref:`Quaternion`. Вираз ``vector * quaternion`` еквівалентний до ``quaternion.inverse() * vector``. Дивіться :ref:`Quaternion.inverse()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_Transform3D: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`Transform3D`\ ) :ref:`🔗` Обернено трансформує (множить) вектор **Vector3** на задану матрицю трансформації :ref:`Transform3D` за умови, що базис трансформації є ортонормованим (тобто обертання/віддзеркалення припустимі, а масштабування/зкіс — ні). Вираз ``vector * transform`` еквівалентний до ``transform.inverse() * vector``. Дивіться :ref:`Transform3D.inverse()`. Для трансформації за допомогою оберненої афінної трансформації (наприклад, з масштабуванням) можна натомість використовувати ``transform.affine_inverse() * vector``. Дивіться :ref:`Transform3D.affine_inverse()`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_Vector3: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Множить кожну компоненту **Vector3** на компоненти заданого **Vector3**. :: print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # Виводить (30.0, 80.0, 150.0) .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_float: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`float`\ ) :ref:`🔗` Множення кожного компонента **Vector3** заданими :ref:`float`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_mul_int: .. rst-class:: classref-operator :ref:`Vector3` **operator ***\ (\ right\: :ref:`int`\ ) :ref:`🔗` Множення кожного компонента **Vector3** заданим :ref:`int`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_sum_Vector3: .. rst-class:: classref-operator :ref:`Vector3` **operator +**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Додає кожен компонент **Vector3** до компонентів заданого **Vector3**. :: print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # Виводить (13.0, 24.0, 35.0) .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_dif_Vector3: .. rst-class:: classref-operator :ref:`Vector3` **operator -**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Віднімає кожну компоненту **Vector3** від компонентів заданого **Vector3**. :: print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # Виводить (7.0, 16.0, 25.0) .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_div_Vector3: .. rst-class:: classref-operator :ref:`Vector3` **operator /**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Ділить кожну компоненту **Vector3** на компоненти заданого **Vector3**. :: print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # Виводить (5.0, 4.0, 10.0) .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_div_float: .. rst-class:: classref-operator :ref:`Vector3` **operator /**\ (\ right\: :ref:`float`\ ) :ref:`🔗` Дивиди кожний компонент **Vector3** відданий :ref:`float`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_div_int: .. rst-class:: classref-operator :ref:`Vector3` **operator /**\ (\ right\: :ref:`int`\ ) :ref:`🔗` Дивиди кожного компонента **Vector3** за умови :ref:`int`. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_lt_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator <**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Порівнює два вектори **Vector3**, спочатку перевіряючи чи значення X у лівого вектора менше за значення ``right`` вектора, і, за рівності X, повторює перевірку для значень Y, а потім Z. Корисно для сортування. \ **Примітка:** Поведінка векторів з :ref:`@GDScript.NAN` відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_lte_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator <=**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Порівнює два вектори **Vector3**, спочатку перевіряючи чи значення X у лівого вектора менше чи рівне до ``right`` вектора, і, за рівності X, повторює перевірку для значень Y, а потім Z. Корисно для сортування. \ **Примітка:** Поведінка векторів з :ref:`@GDScript.NAN` відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_eq_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator ==**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Повертає ``true``, якщо вектори абсолютно рівні. \ **Примітка:** Через помилки точності з плаваючою комою, краще використати :ref:`is_equal_approx()`, який є більш надійним. \ **Примітка:** Вектори з елементами :ref:`@GDScript.NAN` не поводяться так само, як інші вектори. Тому результати цього оператора можуть бути неточними, якщо включено NaN. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_gt_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator >**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Порівнює два вектори **Vector3**, спочатку перевіряючи чи значення X у лівого вектора більше за значення ``right`` вектора, і, за рівності X, повторює перевірку для значень Y, а потім Z. Корисно для сортування. \ **Примітка:** Поведінка векторів з :ref:`@GDScript.NAN` відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_gte_Vector3: .. rst-class:: classref-operator :ref:`bool` **operator >=**\ (\ right\: :ref:`Vector3`\ ) :ref:`🔗` Порівнює два вектори **Vector3**, спочатку перевіряючи чи значення X у лівого вектора більше чи рівне до ``right`` вектора, і, за рівності X, повторює перевірку для значень Y, а потім Z. Корисно для сортування. \ **Примітка:** Поведінка векторів з :ref:`@GDScript.NAN` відрізняється від інших. Через це результати цього методу можуть бути неточними за наявності NaN-ів. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_idx_int: .. rst-class:: classref-operator :ref:`float` **operator []**\ (\ index\: :ref:`int`\ ) :ref:`🔗` Доступ до векторних компонентів за допомогою їх ``index``. ``v[0]`` еквівалент ``v.x``, ``v`` еквівалент ``v.y``, і ``v[2]`` еквівалент ``v.z``. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_unplus: .. rst-class:: classref-operator :ref:`Vector3` **operator unary+**\ (\ ) :ref:`🔗` Повертає однакову вартість, якщо ``+`` не було. `` +`` нічого не робить, але іноді це може зробити ваш код більш читабельним. .. rst-class:: classref-item-separator ---- .. _class_Vector3_operator_unminus: .. rst-class:: classref-operator :ref:`Vector3` **operator unary-**\ (\ ) :ref:`🔗` Повертає негативне значення **Vector3**. Це так само, як написано ``Vector3(-v.x, -v.y, -v.z)``. Ця операція закріплює напрямок вектора, зберігаючи однакову величину. З поплавками число нуль може бути або позитивним або негативним. .. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)` .. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)` .. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)` .. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)` .. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)` .. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)` .. |void| replace:: :abbr:`void (Значення не повертається.)`