Rect2
2D 轴对齐边界框。
描述
Rect2
consists of a position, a size, and several utility functions. It is typically used for fast overlap tests.
It uses floating-point coordinates.
The 3D counterpart to Rect2
is AABB.
Negative values for size are not supported and will not work for most methods. Use abs to get a Rect2 with a positive size.
教程
属性
| ||
| ||
|
方法
abs ( ) | |
get_area ( ) | |
get_center ( ) | |
grow_individual ( float left, float top, float right, float bottom ) | |
grow_margin ( int margin, float by ) | |
has_no_area ( ) | |
intersects ( Rect2 b, bool include_borders=false ) | |
is_equal_approx ( Rect2 rect ) | |
属性说明
- Vector2 end
Default |
|
终点角。通过 position + size
计算而来。设置该值会修改大小。
- Vector2 position
Default |
|
起点角。通常比 end 小。
- Vector2 size
Default |
|
从position 到 end 的大小。通常所有分量都是正数。
如果大小为负,可以用 abs 修正。
方法说明
按位置和大小构造一个Rect2
。
通过x、y、宽度和高度构造一个Rect2
。
- Rect2 abs ( )
返回具有相同位置和面积的 Rect2
,经过修改,使左上角为原点,width
和 height
为正数。
返回此 Rect2
和 b 的交集。
如果此 Rect2
完全包含另一个,则返回 true
。
返回该 Rect2
的副本,该副本扩展至包含给出的点。
例子:
# position (-3, 2), size (1, 1)
var rect = Rect2(Vector2(-3, 2), Vector2(1, 1))
# position (-3, -1), size (3, 4), 包含原来的 Rect 和 Vector2(0, -1)
var rect2 = rect.expand(Vector2(0, -1))
- float get_area ( )
返回 Rect2
面积。
- Vector2 get_center ( )
Returns the center of the Rect2
, which is equal to position + (size / 2).
返回 Rect2
的副本,该副本向所有边增长了给定数量的单位。
返回 Rect2
的副本,该副本分别向各边增长了给定数量的单位。
返回Rect2
向Margin方向增长给定数量单位的副本。
- bool has_no_area ( )
如果Rect2
为flat或空,则返回true
。
返回 true
时,该 Rect2
包含此点。依照惯例,Rect2
的右边缘和下边缘是被排除在外的,因此不包含位于这两条边上的点。
注意: 对于大小为负的 Rect2
,该方法并不可靠。请使用 abs 获取等价的正数大小矩形再检查是否包含某个点。
如果 Rect2
与 b
重叠(即它们至少有一个共同点),则返回 true
。
如果 include_borders
是 true
,如果它们的边界接触,即使没有交叉,它们也会被视为重叠。
通过在每个组件上调用 is_equal_approx
,如果此 Rect2
和 rect
大致相等,则返回 true
。
返回一个更大的 Rect2
,其中包含这个 Rect2
和 b
。