Vector4i
使用整数坐标的 4D 向量。
描述
包含四个元素的结构体,可用于代表 4D 坐标或任何整数的四元组。
使用整数坐标,因此需要绝对精确时应比 Vector4 优先使用。请注意,取值范围有 32 位的限制,与 Vector4 不同,这个类型的精度无法使用引擎的构建参数进行配置。如果需要 64 位的值,请使用 int 或 PackedInt64Array。
注意:在布尔语境中,如果 Vector4i 等于 Vector4i(0, 0, 0, 0)
则求值结果为 false
。否则 Vector4i 的求值结果始终为 true
。
属性
| ||
| ||
| ||
|
构造函数
Vector4i ( ) | |
方法
abs ( ) const | |
length ( ) const | |
length_squared ( ) const | |
max_axis_index ( ) const | |
min_axis_index ( ) const | |
sign ( ) const | |
操作符
operator != ( Vector4i right ) | |
operator % ( Vector4i right ) | |
operator % ( int right ) | |
operator * ( int right ) | |
operator + ( Vector4i right ) | |
operator - ( Vector4i right ) | |
operator / ( Vector4i right ) | |
operator / ( float right ) | |
operator / ( int right ) | |
operator < ( Vector4i right ) | |
operator <= ( Vector4i right ) | |
operator == ( Vector4i right ) | |
operator > ( Vector4i right ) | |
operator >= ( Vector4i right ) | |
operator [] ( int index ) | |
operator unary+ ( ) | |
operator unary- ( ) |
常量
AXIS_X = 0
X 轴的枚举值。由 max_axis_index 和 min_axis_index 返回。
AXIS_Y = 1
Y 轴的枚举值。由 max_axis_index 和 min_axis_index 返回。
AXIS_Z = 2
Z 轴的枚举值。由 max_axis_index 和 min_axis_index 返回。
AXIS_W = 3
W 轴的枚举值。由 max_axis_index 和 min_axis_index 返回。
ZERO = Vector4i(0, 0, 0, 0)
零向量,所有分量都设置为 0
的向量。
ONE = Vector4i(1, 1, 1, 1)
一向量,所有分量都设置为 1
的向量。
MIN = Vector4i(-2147483648, -2147483648, -2147483648, -2147483648)
最小向量,所有分量等于 INT32_MIN
的向量。可用作 Vector4.INF 的负整数等价物。
MAX = Vector4i(2147483647, 2147483647, 2147483647, 2147483647)
最大向量,所有分量等于 INT32_MAX
的向量。可用作 Vector4.INF 的整数等价物。
属性说明
int w = 0
该向量的 W 分量。也可以通过使用索引位置 [3]
访问。
int x = 0
向量的 X 分量。也可以通过使用索引位置 [0]
访问。
int y = 0
向量的 Y 分量。也可以通过使用索引位置 [1]
访问。
int z = 0
向量的 Z 分量。也可以通过使用索引位置 [2]
访问。
构造函数说明
Vector4i Vector4i ( )
构造默认初始化的 Vector4i,所有分量都为 0
。
Vector4i Vector4i ( Vector4i from )
构造给定 Vector4i 的副本。
Vector4i Vector4i ( Vector4 from )
根据给定的 Vector4 构造 Vector4i,会将各个分量的小数部分截断(向 0 取整)。要使用不同的行为,请考虑改为传入 Vector4.ceil、Vector4.floor 或 Vector4.round 的结果。
Vector4i Vector4i ( int x, int y, int z, int w )
返回具有给定分量的 Vector4i。
方法说明
Vector4i abs ( ) const
返回一个新向量,其所有分量都是绝对值,即正值。
Vector4i clamp ( Vector4i min, Vector4i max ) const
返回一个新向量,每个分量都使用 @GlobalScope.clamp 限制在 min
和 max
之间。
float length ( ) const
返回这个向量的长度,即大小。
int length_squared ( ) const
返回这个向量的平方长度,即平方大小。
这个方法比 length 运行得更快,所以如果你需要比较向量或需要一些公式的平方距离时,更喜欢用它。
int max_axis_index ( ) const
返回该向量中最大值的轴。见 AXIS_*
常量。如果所有分量相等,则该方法返回 AXIS_X。
int min_axis_index ( ) const
返回该向量中最小值的轴。见 AXIS_*
常量。如果所有分量相等,则该方法返回 AXIS_W。
Vector4i sign ( ) const
返回一个新的向量,如果是正数,每个分量被设置为1
,如果是负数,-1
,如果是零,0
。其结果与对每个分量调用@GlobalScope.sign相同。
Vector4i snapped ( Vector4i step ) const
返回新的向量,每个分量都吸附到了与 step
中对应分量最接近的倍数。
操作符说明
bool operator != ( Vector4i right )
如果向量不相等,则返回 true
。
Vector4i operator % ( Vector4i right )
获取该 Vector4i 的每个分量与给定 Vector4i 中分量的余数。这个运算使用的是截断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 @GlobalScope.posmod。
print(Vector4i(10, -20, 30, -40) % Vector4i(7, 8, 9, 10)) # 输出 "(3, -4, 3, 0)"
Vector4i operator % ( int right )
获取该 Vector4i 的每个分量与给定的 int 的余数。这个运算使用的是截断式除法,因为对负数不友好,所以通常不会想要使用。如果你想要处理负数,请考虑改用 @GlobalScope.posmod。
print(Vector4i(10, -20, 30, -40) % 7) # 输出 "(3, -6, 2, -5)"
Vector4i operator * ( Vector4i right )
将该 Vector4i 的每个分量乘以给定 Vector4i 的对应分量。
print(Vector4i(10, 20, 30, 40) * Vector4i(3, 4, 5, 6))# 输出 "(30, 80, 150, 240)"
Vector4 operator * ( float right )
将该 Vector4i 的每个分量乘以给定的 float。
由于浮点数运算,返回值为 Vector4。
print(Vector4i(10, 20, 30, 40) * 2) # 输出 "(20, 40, 60, 80)"
Vector4i operator * ( int right )
将该 Vector4i 的每个分量乘以给定的 int。
Vector4i operator + ( Vector4i right )
将该 Vector4i 的每个分量加上给定 Vector4i 的对应分量。
print(Vector4i(10, 20, 30, 40) + Vector4i(3, 4, 5, 6)) # 输出 "(13, 24, 35, 46)"
Vector4i operator - ( Vector4i right )
将该 Vector4i 的每个分量减去给定 Vector4i 的对应分量。
print(Vector4i(10, 20, 30, 40) - Vector4i(3, 4, 5, 6)) # 输出 "(7, 16, 25, 34)"
Vector4i operator / ( Vector4i right )
将该 Vector4i 的每个分量除以给定 Vector4i 的对应分量。
print(Vector4i(10, 20, 30, 40) / Vector4i(2, 5, 3, 4)) # 输出 "(5, 4, 10, 10)"
Vector4 operator / ( float right )
将该 Vector4i 的每个分量除以给定的 float。
由于浮点数运算,返回值为 Vector4。
print(Vector4i(10, 20, 30, 40) / 2 # 输出 "(5, 10, 15, 20)"
Vector4i operator / ( int right )
bool operator < ( Vector4i right )
比较两个 Vector4i 向量,首先检查左向量的 X 值是否小于 right
向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值、Z 值、W 值。该运算符可用于向量排序。
bool operator <= ( Vector4i right )
比较两个 Vector4i 向量,首先检查左向量的 X 值是否小于等于 right
向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值、Z 值、W 值。该运算符可用于向量排序。
bool operator == ( Vector4i right )
如果向量完全相等,则返回 true
。
bool operator > ( Vector4i right )
比较两个 Vector4i 向量,首先检查左向量的 X 值是否大于 right
向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值、Z 值、W 值。该运算符可用于向量排序。
bool operator >= ( Vector4i right )
比较两个 Vector4i 向量,首先检查左向量的 X 值是否大于等于 right
向量的 X 值。如果 X 值完全相等,则用相同的方法检查两个向量的 Y 值、Z 值、W 值。该运算符可用于向量排序。
使用向量分量的 index
来访问向量分量。v[0]
等价于 v.x
,v[1]
等价于 v.y
,v[2]
等价于 v.z
,v[3]
等价于 v.w
。
Vector4i operator unary+ ( )
返回与 +
不存在时相同的值。单目 +
没有作用,但有时可以使你的代码更具可读性。
Vector4i operator unary- ( )
返回该 Vector4i 的负值。和写 Vector4i(-v.x, -v.y, -v.z, -v.w)
是一样的。这个运算会翻转向量方向,同时保持长度不变。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.