Files
godot-docs-l10n/classes/zh_Hans/class_vector2i.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

823 lines
34 KiB
ReStructuredText

:github_url: hide
.. _class_Vector2i:
Vector2i
========
使用整数坐标的 2D 向量。
.. rst-class:: classref-introduction-group
描述
----
包含两个元素的结构体,可用于代表 2D 坐标或任何整数的二元组。
使用整数坐标,因此需要绝对精确时应比 :ref:`Vector2<class_Vector2>` 优先使用。请注意,取值范围有 32 位的限制,与 :ref:`Vector2<class_Vector2>` 不同,这个类型的精度无法使用引擎的构建参数进行配置。如果需要 64 位的值,请使用 :ref:`int<class_int>`:ref:`PackedInt64Array<class_PackedInt64Array>`\ 。
\ **注意:**\ 在布尔语境中,如果 Vector2i 等于 ``Vector2i(0, 0)`` 则求值结果为 ``false``\ 。否则 Vector2i 的求值结果始终为 ``true``\ 。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`数学文档索引 <../tutorials/math/index>`
- :doc:`向量数学 <../tutorials/math/vector_math>`
- `3Blue1Brown《线性代数的本质》 <https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab>`__
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+-----------------------+-------------------------------------+-------+
| :ref:`int<class_int>` | :ref:`x<class_Vector2i_property_x>` | ``0`` |
+-----------------------+-------------------------------------+-------+
| :ref:`int<class_int>` | :ref:`y<class_Vector2i_property_y>` | ``0`` |
+-----------------------+-------------------------------------+-------+
.. rst-class:: classref-reftable-group
构造函数
--------
.. table::
:widths: auto
+---------------------------------+------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`Vector2i<class_Vector2i_constructor_Vector2i>`\ (\ ) |
+---------------------------------+------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`Vector2i<class_Vector2i_constructor_Vector2i>`\ (\ from\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`Vector2i<class_Vector2i_constructor_Vector2i>`\ (\ from\: :ref:`Vector2<class_Vector2>`\ ) |
+---------------------------------+------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`Vector2i<class_Vector2i_constructor_Vector2i>`\ (\ x\: :ref:`int<class_int>`, y\: :ref:`int<class_int>`\ ) |
+---------------------------------+------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`abs<class_Vector2i_method_abs>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`aspect<class_Vector2i_method_aspect>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`clamp<class_Vector2i_method_clamp>`\ (\ min\: :ref:`Vector2i<class_Vector2i>`, max\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`clampi<class_Vector2i_method_clampi>`\ (\ min\: :ref:`int<class_int>`, max\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`distance_squared_to<class_Vector2i_method_distance_squared_to>`\ (\ to\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`distance_to<class_Vector2i_method_distance_to>`\ (\ to\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`length<class_Vector2i_method_length>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`length_squared<class_Vector2i_method_length_squared>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`max<class_Vector2i_method_max>`\ (\ with\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`max_axis_index<class_Vector2i_method_max_axis_index>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`maxi<class_Vector2i_method_maxi>`\ (\ with\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`min<class_Vector2i_method_min>`\ (\ with\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`min_axis_index<class_Vector2i_method_min_axis_index>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`mini<class_Vector2i_method_mini>`\ (\ with\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`sign<class_Vector2i_method_sign>`\ (\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`snapped<class_Vector2i_method_snapped>`\ (\ step\: :ref:`Vector2i<class_Vector2i>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`snappedi<class_Vector2i_method_snappedi>`\ (\ step\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
运算符
------
.. table::
:widths: auto
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator !=<class_Vector2i_operator_neq_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator %<class_Vector2i_operator_mod_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator %<class_Vector2i_operator_mod_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator *<class_Vector2i_operator_mul_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`operator *<class_Vector2i_operator_mul_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator *<class_Vector2i_operator_mul_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator +<class_Vector2i_operator_sum_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator -<class_Vector2i_operator_dif_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator /<class_Vector2i_operator_div_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_Vector2>` | :ref:`operator /<class_Vector2i_operator_div_float>`\ (\ right\: :ref:`float<class_float>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator /<class_Vector2i_operator_div_int>`\ (\ right\: :ref:`int<class_int>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<<class_Vector2i_operator_lt_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator \<=<class_Vector2i_operator_lte_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ==<class_Vector2i_operator_eq_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator ><class_Vector2i_operator_gt_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`operator >=<class_Vector2i_operator_gte_Vector2i>`\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`operator []<class_Vector2i_operator_idx_int>`\ (\ index\: :ref:`int<class_int>`\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator unary+<class_Vector2i_operator_unplus>`\ (\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Vector2i<class_Vector2i>` | :ref:`operator unary-<class_Vector2i_operator_unminus>`\ (\ ) |
+---------------------------------+----------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_Vector2i_Axis:
.. rst-class:: classref-enumeration
enum **Axis**: :ref:`🔗<enum_Vector2i_Axis>`
.. _class_Vector2i_constant_AXIS_X:
.. rst-class:: classref-enumeration-constant
:ref:`Axis<enum_Vector2i_Axis>` **AXIS_X** = ``0``
X 轴的枚举值。由 :ref:`max_axis_index()<class_Vector2i_method_max_axis_index>`:ref:`min_axis_index()<class_Vector2i_method_min_axis_index>` 返回。
.. _class_Vector2i_constant_AXIS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`Axis<enum_Vector2i_Axis>` **AXIS_Y** = ``1``
Y 轴的枚举值。由 :ref:`max_axis_index()<class_Vector2i_method_max_axis_index>`:ref:`min_axis_index()<class_Vector2i_method_min_axis_index>` 返回。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
常量
----
.. _class_Vector2i_constant_ZERO:
.. rst-class:: classref-constant
**ZERO** = ``Vector2i(0, 0)`` :ref:`🔗<class_Vector2i_constant_ZERO>`
零向量,所有分量都设置为 ``0`` 的向量。
.. _class_Vector2i_constant_ONE:
.. rst-class:: classref-constant
**ONE** = ``Vector2i(1, 1)`` :ref:`🔗<class_Vector2i_constant_ONE>`
一向量,所有分量都设置为 ``1`` 的向量。
.. _class_Vector2i_constant_MIN:
.. rst-class:: classref-constant
**MIN** = ``Vector2i(-2147483648, -2147483648)`` :ref:`🔗<class_Vector2i_constant_MIN>`
最小向量,所有分量等于 ``INT32_MIN`` 的向量。可用作 :ref:`Vector2.INF<class_Vector2_constant_INF>` 的负整数等价物。
.. _class_Vector2i_constant_MAX:
.. rst-class:: classref-constant
**MAX** = ``Vector2i(2147483647, 2147483647)`` :ref:`🔗<class_Vector2i_constant_MAX>`
最大向量,所有分量等于 ``INT32_MAX`` 的向量。可用作 :ref:`Vector2.INF<class_Vector2_constant_INF>` 的整数等价物。
.. _class_Vector2i_constant_LEFT:
.. rst-class:: classref-constant
**LEFT** = ``Vector2i(-1, 0)`` :ref:`🔗<class_Vector2i_constant_LEFT>`
左单位向量。代表左的方向。
.. _class_Vector2i_constant_RIGHT:
.. rst-class:: classref-constant
**RIGHT** = ``Vector2i(1, 0)`` :ref:`🔗<class_Vector2i_constant_RIGHT>`
右单位向量。代表右的方向。
.. _class_Vector2i_constant_UP:
.. rst-class:: classref-constant
**UP** = ``Vector2i(0, -1)`` :ref:`🔗<class_Vector2i_constant_UP>`
上单位向量。在 2D 中 Y 是向下的,所以这个向量指向 -Y。
.. _class_Vector2i_constant_DOWN:
.. rst-class:: classref-constant
**DOWN** = ``Vector2i(0, 1)`` :ref:`🔗<class_Vector2i_constant_DOWN>`
下单位向量。在 2D 中 Y 是向下的,所以这个向量指向 +Y。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_Vector2i_property_x:
.. rst-class:: classref-property
:ref:`int<class_int>` **x** = ``0`` :ref:`🔗<class_Vector2i_property_x>`
向量的 X 分量。也可以通过使用索引位置 ``[0]`` 访问。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_property_y:
.. rst-class:: classref-property
:ref:`int<class_int>` **y** = ``0`` :ref:`🔗<class_Vector2i_property_y>`
向量的 Y 分量。也可以通过使用索引位置 ``[1]`` 访问。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
构造函数说明
------------
.. _class_Vector2i_constructor_Vector2i:
.. rst-class:: classref-constructor
:ref:`Vector2i<class_Vector2i>` **Vector2i**\ (\ ) :ref:`🔗<class_Vector2i_constructor_Vector2i>`
构造默认初始化的 **Vector2i**\ ,所有分量都为 ``0``\ 。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Vector2i<class_Vector2i>` **Vector2i**\ (\ from\: :ref:`Vector2i<class_Vector2i>`\ )
构造给定 **Vector2i** 的副本。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Vector2i<class_Vector2i>` **Vector2i**\ (\ from\: :ref:`Vector2<class_Vector2>`\ )
根据给定的 :ref:`Vector2<class_Vector2>` 构造 **Vector2i**\ ,会将各个分量的小数部分截断(向 0 取整)。要使用不同的行为,请考虑改为传入 :ref:`Vector2.ceil()<class_Vector2_method_ceil>`\ 、\ :ref:`Vector2.floor()<class_Vector2_method_floor>` 或 :ref:`Vector2.round()<class_Vector2_method_round>` 的结果。
.. rst-class:: classref-item-separator
----
.. rst-class:: classref-constructor
:ref:`Vector2i<class_Vector2i>` **Vector2i**\ (\ x\: :ref:`int<class_int>`, y\: :ref:`int<class_int>`\ )
从给定的 ``x````y`` 构造新的 **Vector2i**\ 。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_Vector2i_method_abs:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **abs**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_abs>`
返回一个新向量,其所有分量都是绝对值,即正值。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_aspect:
.. rst-class:: classref-method
:ref:`float<class_float>` **aspect**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_aspect>`
返回该向量的长宽比,即 :ref:`x<class_Vector2i_property_x>`:ref:`y<class_Vector2i_property_y>` 的比例。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_clamp:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **clamp**\ (\ min\: :ref:`Vector2i<class_Vector2i>`, max\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_clamp>`
返回一个新向量,每个分量都使用 :ref:`@GlobalScope.clamp()<class_@GlobalScope_method_clamp>` 限制在 ``min````max`` 之间。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_clampi:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **clampi**\ (\ min\: :ref:`int<class_int>`, max\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Vector2i_method_clampi>`
返回一个新向量,每个分量都使用 :ref:`@GlobalScope.clamp()<class_@GlobalScope_method_clamp>` 限制在 ``min````max`` 之间。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_distance_squared_to:
.. rst-class:: classref-method
:ref:`int<class_int>` **distance_squared_to**\ (\ to\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_distance_squared_to>`
返回该向量与 ``to`` 之间的距离的平方。
该方法比 :ref:`distance_to()<class_Vector2i_method_distance_to>` 运行得更快,因此请在需要比较向量或者用于某些公式的平方距离时,优先使用这个方法。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_distance_to:
.. rst-class:: classref-method
:ref:`float<class_float>` **distance_to**\ (\ to\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_distance_to>`
返回该向量与 ``to`` 之间的距离。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **length**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_length>`
返回这个向量的长度,即大小。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_length_squared:
.. rst-class:: classref-method
:ref:`int<class_int>` **length_squared**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_length_squared>`
返回这个向量的平方长度,即平方大小。
这个方法比 :ref:`length()<class_Vector2i_method_length>` 运行得更快,所以如果你需要比较向量或需要一些公式的平方距离时,更喜欢用它。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_max:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **max**\ (\ with\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_max>`
返回自身与 ``with`` 各分量的最大值,等价于 ``Vector2i(maxi(x, with.x), maxi(y, with.y))``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_max_axis_index:
.. rst-class:: classref-method
:ref:`int<class_int>` **max_axis_index**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_max_axis_index>`
返回该向量中最大值的轴。见 ``AXIS_*`` 常量。如果所有分量相等,则该方法返回 :ref:`AXIS_X<class_Vector2i_constant_AXIS_X>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_maxi:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **maxi**\ (\ with\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Vector2i_method_maxi>`
返回自身与 ``with`` 各分量的最大值,等价于 ``Vector2i(maxi(x, with), maxi(y, with))``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_min:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **min**\ (\ with\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_min>`
返回自身与 ``with`` 各分量的最小值,等价于 ``Vector2i(mini(x, with.x), mini(y, with.y))``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_min_axis_index:
.. rst-class:: classref-method
:ref:`int<class_int>` **min_axis_index**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_min_axis_index>`
返回该向量中最小值的轴。见 ``AXIS_*`` 常量。如果所有分量相等,则该方法返回 :ref:`AXIS_Y<class_Vector2i_constant_AXIS_Y>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_mini:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **mini**\ (\ with\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Vector2i_method_mini>`
返回自身与 ``with`` 各分量的最小值,等价于 ``Vector2i(mini(x, with), mini(y, with))``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_sign:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **sign**\ (\ ) |const| :ref:`🔗<class_Vector2i_method_sign>`
返回一个新的向量,如果是正数,每个分量被设置为\ ``1`` ,如果是负数,\ ``-1`` ,如果是零,\ ``0`` 。其结果与对每个分量调用\ :ref:`@GlobalScope.sign()<class_@GlobalScope_method_sign>`\ 相同。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_snapped:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **snapped**\ (\ step\: :ref:`Vector2i<class_Vector2i>`\ ) |const| :ref:`🔗<class_Vector2i_method_snapped>`
返回新的向量,每个分量都吸附到了与 ``step`` 中对应分量最接近的倍数。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_method_snappedi:
.. rst-class:: classref-method
:ref:`Vector2i<class_Vector2i>` **snappedi**\ (\ step\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_Vector2i_method_snappedi>`
返回一个新向量,其中每个分量都吸附到了 ``step`` 的最接近倍数。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
运算符说明
----------
.. _class_Vector2i_operator_neq_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator !=**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_neq_Vector2i>`
如果向量不相等,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_mod_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator %**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_mod_Vector2i>`
获取该 **Vector2i** 的每个分量与给定 **Vector2i** 中分量的余数。这个运算使用的是截断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 :ref:`@GlobalScope.posmod()<class_@GlobalScope_method_posmod>`\ 。
::
print(Vector2i(10, -20) % Vector2i(7, 8)) # 输出 (3, -4)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_mod_int:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator %**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Vector2i_operator_mod_int>`
获取该 **Vector2i** 的每个分量与给定的 :ref:`int<class_int>` 的余数。这个运算使用的是截断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 :ref:`@GlobalScope.posmod()<class_@GlobalScope_method_posmod>`\ 。
::
print(Vector2i(10, -20) % 7) # 输出 (3, -6)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_mul_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator ***\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_mul_Vector2i>`
将该 **Vector2i** 的每个分量乘以给定 **Vector2i** 的对应分量。
::
print(Vector2i(10, 20) * Vector2i(3, 4)) # 输出 (30, 80)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_mul_float:
.. rst-class:: classref-operator
:ref:`Vector2<class_Vector2>` **operator ***\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Vector2i_operator_mul_float>`
将该 **Vector2i** 的每个分量乘以给定的 :ref:`float<class_float>`\ 。返回的是 :ref:`Vector2<class_Vector2>`\ 。
::
print(Vector2i(10, 15) * 0.9) # 输出 (9.0, 13.5)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_mul_int:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator ***\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Vector2i_operator_mul_int>`
将该 **Vector2i** 的每个分量乘以给定的 :ref:`int<class_int>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_sum_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator +**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_sum_Vector2i>`
将该 **Vector2i** 的每个分量加上给定 **Vector2i** 的对应分量。
::
print(Vector2i(10, 20) + Vector2i(3, 4)) # 输出 (13, 24)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_dif_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator -**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_dif_Vector2i>`
将该 **Vector2i** 的每个分量减去给定 **Vector2i** 的对应分量。
::
print(Vector2i(10, 20) - Vector2i(3, 4)) # 输出 (7, 16)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_div_Vector2i:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator /**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_div_Vector2i>`
将该 **Vector2i** 的每个分量除以给定 **Vector2i** 的对应分量。
::
print(Vector2i(10, 20) / Vector2i(2, 5)) # 输出 (5, 4)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_div_float:
.. rst-class:: classref-operator
:ref:`Vector2<class_Vector2>` **operator /**\ (\ right\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Vector2i_operator_div_float>`
Divides each component of the **Vector2i** by the given :ref:`float<class_float>`. Returns a :ref:`Vector2<class_Vector2>`.
::
print(Vector2i(1, 2) / 2.5) # Prints (0.4, 0.8)
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_div_int:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator /**\ (\ right\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Vector2i_operator_div_int>`
将该 **Vector2i** 的每个分量除以给定的 :ref:`int<class_int>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_lt_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_lt_Vector2i>`
比较两个 **Vector2i** 向量,首先检查左向量的 X 值是否小于 ``right`` 向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值。该运算符可用于向量排序。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_lte_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator <=**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_lte_Vector2i>`
比较两个 **Vector2i** 向量,首先检查左向量的 X 值是否小于等于 ``right`` 向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值。该运算符可用于向量排序。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_eq_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator ==**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_eq_Vector2i>`
如果向量相等,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_gt_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_gt_Vector2i>`
比较两个 **Vector2i** 向量,首先检查左向量的 X 值是否大于 ``right`` 向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值。该运算符可用于向量排序。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_gte_Vector2i:
.. rst-class:: classref-operator
:ref:`bool<class_bool>` **operator >=**\ (\ right\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Vector2i_operator_gte_Vector2i>`
比较两个 **Vector2i** 向量,首先检查左向量的 X 值是否大于等于 ``right`` 向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值。该运算符可用于向量排序。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_idx_int:
.. rst-class:: classref-operator
:ref:`int<class_int>` **operator []**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_Vector2i_operator_idx_int>`
使用向量分量的 ``index`` 来访问向量分量。\ ``v[0]`` 等价于 ``v.x``\ 、\ ``v[1]`` 等价于 ``v.y``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_unplus:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator unary+**\ (\ ) :ref:`🔗<class_Vector2i_operator_unplus>`
返回与 ``+`` 不存在时相同的值。单目 ``+`` 没有作用,但有时可以使你的代码更具可读性。
.. rst-class:: classref-item-separator
----
.. _class_Vector2i_operator_unminus:
.. rst-class:: classref-operator
:ref:`Vector2i<class_Vector2i>` **operator unary-**\ (\ ) :ref:`🔗<class_Vector2i_operator_unminus>`
返回该 **Vector2i** 的负值。和写 ``Vector2i(-v.x, -v.y)`` 是一样的。该操作在保持相同幅度的同时,翻转向量的方向。
.. |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 (无返回值。)`