Vector3i¶
使用整数坐标的3D矢量。
描述¶
一种3元素结构,可用于表示3D网格坐标或任何其他整数三元组。
它使用整数坐标,因此在需要精确精度时比Vector3更可取。请注意,这些值限制为32位,与Vector3不同,这不能配置为引擎构建选项。如果需要64位值,请使用int或PackedInt64Array。
注意:在布尔上下文中,如果Vector3i等于Vector3i(0,0,0),它将评估为false。否则,Vector3i将始终评估为true。
属性¶
构造函数¶
方法¶
abs() const |
|
distance_squared_to(to: Vector3i) const |
|
distance_to(to: Vector3i) const |
|
length() const |
|
length_squared() const |
|
max_axis_index() const |
|
min_axis_index() const |
|
sign() const |
|
运算符¶
operator !=(right: Vector3i) |
|
operator %(right: Vector3i) |
|
operator %(right: int) |
|
operator *(right: Vector3i) |
|
operator *(right: float) |
|
operator *(right: int) |
|
operator +(right: Vector3i) |
|
operator -(right: Vector3i) |
|
operator /(right: Vector3i) |
|
operator /(right: float) |
|
operator /(right: int) |
|
operator <(right: Vector3i) |
|
operator <=(right: Vector3i) |
|
operator ==(right: Vector3i) |
|
operator >(right: Vector3i) |
|
operator >=(right: Vector3i) |
|
operator [](index: int) |
|
枚举¶
enum Axis: 🔗
Axis AXIS_X = 0
X轴的枚举值。由max_axis_index()和min_axis_index()返回。
Axis AXIS_Y = 1
Y轴的枚举值。由max_axis_index()和min_axis_index()返回。
Axis AXIS_Z = 2
Z轴的枚举值。由max_axis_index()和min_axis_index()返回。
常量¶
ZERO = Vector3i(0, 0, 0) 🔗
零向量,所有分量都设置为0的向量。
ONE = Vector3i(1, 1, 1) 🔗
一个向量,所有分量都设置为1的向量。
MIN = Vector3i(-2147483648, -2147483648, -2147483648) 🔗
min向量,所有分量等于INT32_MIN的向量。可以用作Vector3.INF的负整数等价物。
MAX = Vector3i(2147483647, 2147483647, 2147483647) 🔗
最大向量,所有分量等于INT32_MAX的向量。可以用作Vector3.INF的整数等价物。
LEFT = Vector3i(-1, 0, 0) 🔗
左单位向量。表示左的局部方向和西的全局方向。
RIGHT = Vector3i(1, 0, 0) 🔗
右单位向量。表示右的局部方向和东的全局方向。
UP = Vector3i(0, 1, 0) 🔗
向上单位向量。
DOWN = Vector3i(0, -1, 0) 🔗
向下单位向量。
FORWARD = Vector3i(0, 0, -1) 🔗
向前单位向量。表示向前的局部方向,向北的全局方向。
BACK = Vector3i(0, 0, 1) 🔗
向后单位向量。表示背面的局部方向,以及南方的全局方向。
属性说明¶
向量的X分量。也可以使用索引位置[0]访问。
向量的Y分量。也可以使用索引位置[1]访问。
向量的Z分量。也可以使用索引位置[2]访问。
构造函数说明¶
构造一个默认初始化的Vector3i,所有组件都设置为0。
Vector3i Vector3i(from: Vector3i)
构造一个Vector3i作为给定Vector3i的副本。
Vector3i Vector3i(from: Vector3)
通过截断组件的小数部分(四舍五入为零)从给定的Vector3构造一个新的Vector3i。对于不同的行为,请考虑将Vector3.ceil()、Vector3.floor()或Vector3.round()的结果传递给此构造函数。
Vector3i Vector3i(x: int, y: int, z: int)
返回具有给定组件的Vector3i。
方法说明¶
返回一个新向量,其中所有分量都为绝对值(即正)。
Vector3i clamp(min: Vector3i, max: Vector3i) const 🔗
通过在每个组件上运行@GlobalScope.clamp(),返回一个新向量,其中所有组件都夹在min和max的组件之间。
Vector3i clampi(min: int, max: int) const 🔗
通过在每个组件上运行@GlobalScope.clamp(),返回一个新向量,其中所有组件都夹在min和max之间。
int distance_squared_to(to: Vector3i) const 🔗
返回此向量与to之间的平方距离。
此方法比distance_to()运行得更快,因此如果您需要比较向量或需要某些公式的平方距离,则更喜欢它。
float distance_to(to: Vector3i) const 🔗
返回此向量与to之间的距离。
返回此向量的长度(大小)。
返回此向量的平方长度(平方幅度)。
此方法比length()运行得更快,因此如果您需要比较向量或需要某些公式的平方距离,则更喜欢它。
Vector3i max(with: Vector3i) const 🔗
返回this和with的组件最大值,相当于Vector3i(maxi(x, with.x),maxi(y,with.y),maxi(z,with.z))。
返回向量最高值的轴。请参见AXIS_*常量。如果所有分量相等,则此方法返回AXIS_X。
Vector3i maxi(with: int) const 🔗
返回this和with的组件最大值,相当于Vector3i(maxi(x, with),maxi(y,with),maxi(z,with))。
Vector3i min(with: Vector3i) const 🔗
返回this和with的组件最小值,相当于Vector3i(mini(x, with.x),mini(y,with.y),mini(z,with.z))。
返回向量最低值的轴。请参见AXIS_*常量。如果所有分量相等,则此方法返回AXIS_Z。
Vector3i mini(with: int) const 🔗
返回this和with的组件最小值,相当于Vector3i(mini(x, with),mini(y,with),mini(z,with))。
返回一个新向量,如果每个组件为正,则将每个组件设置为1,如果为负,则将-1,如果为零,则将0。结果与在每个组件上调用@GlobalScope.sign()相同。
Vector3i snapped(step: Vector3i) const 🔗
返回一个新向量,每个组件都捕捉到step中相应组件的最接近倍数。
Vector3i snappedi(step: int) const 🔗
返回一个新向量,每个分量都被捕捉到step的最接近倍数。
运算符说明¶
bool operator !=(right: Vector3i) 🔗
如果向量不相等,则返回true。
Vector3i operator %(right: Vector3i) 🔗
获取 Vector3i 的每个分量与给定 Vector3i 的分量相除的余数。此操作使用截断除法,由于其对负数处理不佳,通常并非理想选择。如果需要处理负数,建议改用 @GlobalScope.posmod()。
print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Prints (3, -4, 3)
Vector3i operator %(right: int) 🔗
获取 Vector3i 的每个分量与给定 int 的余数。此操作使用截断除法,这通常不是理想的选择,因为它对负数处理效果不佳。如果你想处理负数,考虑改用 @GlobalScope.posmod()。
print(Vector3i(10, -20, 30) % 7) # Prints (3, -6, 2)
Vector3i operator *(right: Vector3i) 🔗
将 Vector3i 的每个分量与给定的 Vector3i 的分量相乘。
print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Prints (30, 80, 150)
Vector3 operator *(right: float) 🔗
将 Vector3i 的每个分量与给定的 float 相乘。返回一个 Vector3。
print(Vector3i(10, 15, 20) * 0.9) # Prints (9.0, 13.5, 18.0)
Vector3i operator *(right: int) 🔗
将Vector3i的每个组件乘以给定的int。
Vector3i operator +(right: Vector3i) 🔗
将 Vector3i 的每个分量与给定的 Vector3i 的分量相加。
print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints (13, 24, 35)
Vector3i operator -(right: Vector3i) 🔗
从 Vector3i 的每个分量中减去给定 Vector3i 的分量。
print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints (7, 16, 25)
Vector3i operator /(right: Vector3i) 🔗
将 Vector3i 的每个分量除以给定 Vector3i 的分量。
print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints (5, 4, 10)
Vector3 operator /(right: float) 🔗
将 Vector3i 的每个分量除以给定的 float。返回一个 Vector3
print(Vector3i(10, 20, 30) / 2.9) # Prints (5.0, 10.0, 15.0)
Vector3i operator /(right: int) 🔗
将Vector3i的每个组件除以给定的int。
bool operator <(right: Vector3i) 🔗
通过首先检查左向量的X值是否小于right向量的X值来比较两个Vector3i向量。如果X值完全相等,则它使用两个向量的Y值重复此检查,然后使用Z值。此运算符对于排序向量很有用。
bool operator <=(right: Vector3i) 🔗
通过首先检查左向量的X值是否小于或等于right向量的X值来比较两个Vector3i向量。如果X值完全相等,则它使用两个向量的Y值重复此检查,然后使用Z值。此运算符对于排序向量很有用。
bool operator ==(right: Vector3i) 🔗
如果向量相等,则返回true。
bool operator >(right: Vector3i) 🔗
通过首先检查左向量的X值是否大于right向量的X值来比较两个Vector3i向量。如果X值完全相等,则它使用两个向量的Y值重复此检查,然后使用Z值。此运算符对于排序向量很有用。
bool operator >=(right: Vector3i) 🔗
通过首先检查左向量的X值是否大于或等于right向量的X值来比较两个Vector3i向量。如果X值完全相等,则它使用两个向量的Y值重复此检查,然后使用Z值。此运算符对于排序向量很有用。
使用它们的index访问向量组件。v[0]等价于v. x,v[1]等价于v.y,并且v[2]等价于v.z。
返回与+不存在相同的值。一元+什么也不做,但有时它可以使您的代码更具可读性。
返回Vector3i的负值。这与编写Vector3i(-v. x,-v.y,-v.z)相同。此操作在保持相同大小的同时翻转向量的方向。