mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2026-01-05 14:10:19 +03:00
Currently including `zh_CN` and `es` which both have very high completion ratios. Others will be added once they reach a significant percentage too. These RST files will be used by godot-docs in place of its `classes` folder after we sync with https://github.com/godotengine/godot-docs/pull/5458. The update workflow is manual for now (example for `zh_CN`): - Build `godotengine/godot` in the branch we currently track (now `3.x`) - Run `godot --doctool -l zh_CN` - Run `cd doc && make rst LANGARG=zh_CN` - Copy `doc/_build/rst/*` to `classes/zh_CN/` here - Make sure to have `classes/zh_CN/index.rst` copied from `docs/classes`
304 lines
17 KiB
ReStructuredText
304 lines
17 KiB
ReStructuredText
:github_url: hide
|
|
|
|
.. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
|
|
.. DO NOT EDIT THIS FILE, but the Quat.xml source instead.
|
|
.. The source is found in doc/classes or modules/<name>/doc_classes.
|
|
|
|
.. _class_Quat:
|
|
|
|
Quat
|
|
====
|
|
|
|
Cuaternario.
|
|
|
|
Descripción
|
|
----------------------
|
|
|
|
Un cuaternario unitario utilizado para representar las rotaciones 3D. Los cuaterniones deben ser normalizados para ser usados para la rotación.
|
|
|
|
Es similar a Basis, que implementa la representación matricial de las rotaciones, y puede ser parametrizada usando tanto un par eje-ángulo como ángulos de Euler. Basis almacena la rotación, la escala y el corte, mientras que Quat sólo almacena la rotación.
|
|
|
|
Debido a su compactación y a la forma en que se almacena en la memoria, ciertas operaciones (obtener el ángulo del eje y realizar el SLERP, en particular) son más eficientes y robustas contra los errores de reales.
|
|
|
|
Tutoriales
|
|
--------------------
|
|
|
|
- `Using 3D transforms <../tutorials/3d/using_transforms.html#interpolating-with-quaternions>`__
|
|
|
|
- `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
|
|
|
|
Propiedades
|
|
----------------------
|
|
|
|
+---------------------------+---------------------------------+---------+
|
|
| :ref:`float<class_float>` | :ref:`w<class_Quat_property_w>` | ``1.0`` |
|
|
+---------------------------+---------------------------------+---------+
|
|
| :ref:`float<class_float>` | :ref:`x<class_Quat_property_x>` | ``0.0`` |
|
|
+---------------------------+---------------------------------+---------+
|
|
| :ref:`float<class_float>` | :ref:`y<class_Quat_property_y>` | ``0.0`` |
|
|
+---------------------------+---------------------------------+---------+
|
|
| :ref:`float<class_float>` | :ref:`z<class_Quat_property_z>` | ``0.0`` |
|
|
+---------------------------+---------------------------------+---------+
|
|
|
|
Métodos
|
|
--------------
|
|
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`Quat<class_Quat_method_Quat>` **(** :ref:`Basis<class_Basis>` from **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`Quat<class_Quat_method_Quat>` **(** :ref:`Vector3<class_Vector3>` euler **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`Quat<class_Quat_method_Quat>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`Quat<class_Quat_method_Quat>` **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y, :ref:`float<class_float>` z, :ref:`float<class_float>` w **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`float<class_float>` | :ref:`angle_to<class_Quat_method_angle_to>` **(** :ref:`Quat<class_Quat>` to **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`cubic_slerp<class_Quat_method_cubic_slerp>` **(** :ref:`Quat<class_Quat>` b, :ref:`Quat<class_Quat>` pre_a, :ref:`Quat<class_Quat>` post_b, :ref:`float<class_float>` weight **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`float<class_float>` | :ref:`dot<class_Quat_method_dot>` **(** :ref:`Quat<class_Quat>` b **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Vector3<class_Vector3>` | :ref:`get_euler<class_Quat_method_get_euler>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`inverse<class_Quat_method_inverse>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`bool<class_bool>` | :ref:`is_equal_approx<class_Quat_method_is_equal_approx>` **(** :ref:`Quat<class_Quat>` quat **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`bool<class_bool>` | :ref:`is_normalized<class_Quat_method_is_normalized>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`float<class_float>` | :ref:`length<class_Quat_method_length>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`float<class_float>` | :ref:`length_squared<class_Quat_method_length_squared>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`normalized<class_Quat_method_normalized>` **(** **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_axis_angle<class_Quat_method_set_axis_angle>` **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| void | :ref:`set_euler<class_Quat_method_set_euler>` **(** :ref:`Vector3<class_Vector3>` euler **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`slerp<class_Quat_method_slerp>` **(** :ref:`Quat<class_Quat>` to, :ref:`float<class_float>` weight **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Quat<class_Quat>` | :ref:`slerpni<class_Quat_method_slerpni>` **(** :ref:`Quat<class_Quat>` to, :ref:`float<class_float>` weight **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| :ref:`Vector3<class_Vector3>` | :ref:`xform<class_Quat_method_xform>` **(** :ref:`Vector3<class_Vector3>` v **)** |
|
|
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Constantes
|
|
--------------------
|
|
|
|
.. _class_Quat_constant_IDENTITY:
|
|
|
|
- **IDENTITY** = **Quat( 0, 0, 0, 1 )** --- El cuaternario de identidad, que no representa una rotación. Equivalente a una matriz :ref:`Basis<class_Basis>` de identidad. Si un vector es transformado por un cuaternario de identidad, no cambiará.
|
|
|
|
Descripciones de Propiedades
|
|
--------------------------------------------------------
|
|
|
|
.. _class_Quat_property_w:
|
|
|
|
- :ref:`float<class_float>` **w**
|
|
|
|
+-----------+---------+
|
|
| *Default* | ``1.0`` |
|
|
+-----------+---------+
|
|
|
|
Componente W del cuaternario (parte real).
|
|
|
|
Los componentes del cuaternario normalmente no deben ser manipulados directamente.
|
|
|
|
----
|
|
|
|
.. _class_Quat_property_x:
|
|
|
|
- :ref:`float<class_float>` **x**
|
|
|
|
+-----------+---------+
|
|
| *Default* | ``0.0`` |
|
|
+-----------+---------+
|
|
|
|
Componente X del cuaternario (parte del eje imaginario ``i``).
|
|
|
|
Los componentes del cuaternario no deberían ser manipulados directamente.
|
|
|
|
----
|
|
|
|
.. _class_Quat_property_y:
|
|
|
|
- :ref:`float<class_float>` **y**
|
|
|
|
+-----------+---------+
|
|
| *Default* | ``0.0`` |
|
|
+-----------+---------+
|
|
|
|
Componente Y del cuaternario (parte del eje imaginario ``j``).
|
|
|
|
Los componentes del cuaternario normalmente no deben ser manipulados directamente.
|
|
|
|
----
|
|
|
|
.. _class_Quat_property_z:
|
|
|
|
- :ref:`float<class_float>` **z**
|
|
|
|
+-----------+---------+
|
|
| *Default* | ``0.0`` |
|
|
+-----------+---------+
|
|
|
|
Componente Z del cuaternario (parte del eje imaginario ``k``).
|
|
|
|
Los componentes del cuaternario normalmente no deben ser manipulados directamente.
|
|
|
|
Descripciones de Métodos
|
|
------------------------------------------------
|
|
|
|
.. _class_Quat_method_Quat:
|
|
|
|
- :ref:`Quat<class_Quat>` **Quat** **(** :ref:`Basis<class_Basis>` from **)**
|
|
|
|
Construye un cuaternario a partir de la :ref:`Basis<class_Basis>` dada.
|
|
|
|
----
|
|
|
|
- :ref:`Quat<class_Quat>` **Quat** **(** :ref:`Vector3<class_Vector3>` euler **)**
|
|
|
|
Construye un cuaternario que realizará una rotación especificada por los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X, y por último Y), dados en el formato vectorial como (ángulo X, ángulo Y, ángulo Z).
|
|
|
|
----
|
|
|
|
- :ref:`Quat<class_Quat>` **Quat** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
|
|
|
|
Construye un cuaternario que girará alrededor del eje dado por el ángulo especificado. El eje debe ser un vector normalizado.
|
|
|
|
----
|
|
|
|
- :ref:`Quat<class_Quat>` **Quat** **(** :ref:`float<class_float>` x, :ref:`float<class_float>` y, :ref:`float<class_float>` z, :ref:`float<class_float>` w **)**
|
|
|
|
Construye un cuaternario definido por los valores dados.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_angle_to:
|
|
|
|
- :ref:`float<class_float>` **angle_to** **(** :ref:`Quat<class_Quat>` to **)**
|
|
|
|
Returns the angle between this quaternion and ``to``. This is the magnitude of the angle you would need to rotate by to get from one to the other.
|
|
|
|
\ **Note:** This method has an abnormally high amount of floating-point error, so methods such as :ref:`@GDScript.is_zero_approx<class_@GDScript_method_is_zero_approx>` will not work reliably.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_cubic_slerp:
|
|
|
|
- :ref:`Quat<class_Quat>` **cubic_slerp** **(** :ref:`Quat<class_Quat>` b, :ref:`Quat<class_Quat>` pre_a, :ref:`Quat<class_Quat>` post_b, :ref:`float<class_float>` weight **)**
|
|
|
|
Performs a cubic spherical interpolation between quaternions ``pre_a``, this vector, ``b``, and ``post_b``, by the given amount ``weight``.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_dot:
|
|
|
|
- :ref:`float<class_float>` **dot** **(** :ref:`Quat<class_Quat>` b **)**
|
|
|
|
Realiza una interpolación esférica cúbica entre cuaterniones.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_get_euler:
|
|
|
|
- :ref:`Vector3<class_Vector3>` **get_euler** **(** **)**
|
|
|
|
Devuelve los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X e Y al final) correspondientes a la rotación representada por la unidad cuaternaria. El vector devuelto contiene los ángulos de rotación en el formato (ángulo X, ángulo Y, ángulo Z).
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_inverse:
|
|
|
|
- :ref:`Quat<class_Quat>` **inverse** **(** **)**
|
|
|
|
Devuelve el inverso del cuaternario.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_is_equal_approx:
|
|
|
|
- :ref:`bool<class_bool>` **is_equal_approx** **(** :ref:`Quat<class_Quat>` quat **)**
|
|
|
|
Returns ``true`` if this quaternion and ``quat`` are approximately equal, by running :ref:`@GDScript.is_equal_approx<class_@GDScript_method_is_equal_approx>` on each component.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_is_normalized:
|
|
|
|
- :ref:`bool<class_bool>` **is_normalized** **(** **)**
|
|
|
|
Devuelve si el cuaternario está normalizado o no.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_length:
|
|
|
|
- :ref:`float<class_float>` **length** **(** **)**
|
|
|
|
Devuelve la longitud del cuaternario.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_length_squared:
|
|
|
|
- :ref:`float<class_float>` **length_squared** **(** **)**
|
|
|
|
Devuelve la longitud del cuaternario, cuadrada.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_normalized:
|
|
|
|
- :ref:`Quat<class_Quat>` **normalized** **(** **)**
|
|
|
|
Devuelve una copia del cuaternario, normalizada a la longitud de la unidad.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_set_axis_angle:
|
|
|
|
- void **set_axis_angle** **(** :ref:`Vector3<class_Vector3>` axis, :ref:`float<class_float>` angle **)**
|
|
|
|
Establece el cuaternario a una rotación que gira alrededor del eje por el ángulo especificado, en radianes. El eje debe ser un vector normalizado.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_set_euler:
|
|
|
|
- void **set_euler** **(** :ref:`Vector3<class_Vector3>` euler **)**
|
|
|
|
Establece el cuaternario a una rotación especificada por los ángulos de Euler (en la convención YXZ: al descomponerse, primero Z, luego X e Y en último lugar), dada en el formato vectorial como (ángulo X, ángulo Y, ángulo Z).
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_slerp:
|
|
|
|
- :ref:`Quat<class_Quat>` **slerp** **(** :ref:`Quat<class_Quat>` to, :ref:`float<class_float>` weight **)**
|
|
|
|
Devuelve el resultado de la interpolación lineal esférica entre este cuaternario y ``a`` por cantidad ``peso``.
|
|
|
|
\ **Nota:** Ambos cuaterniones deben ser normalizados.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_slerpni:
|
|
|
|
- :ref:`Quat<class_Quat>` **slerpni** **(** :ref:`Quat<class_Quat>` to, :ref:`float<class_float>` weight **)**
|
|
|
|
Devuelve el resultado de la interpolación lineal esférica entre este cuaternario y ``a`` por cantidad ``peso``, pero sin comprobar si la trayectoria de rotación no es mayor de 90 grados.
|
|
|
|
----
|
|
|
|
.. _class_Quat_method_xform:
|
|
|
|
- :ref:`Vector3<class_Vector3>` **xform** **(** :ref:`Vector3<class_Vector3>` v **)**
|
|
|
|
Devuelve un vector transformado (multiplicado) por este cuaternario.
|
|
|
|
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
|
|
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
|
|
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
|