_Rect

矩形模块,表示平面上的一个矩形区域,边与坐标轴平行,坐标可以为浮点数。 全部展开

属性展开

  • + b : number

    矩形右下角的Y坐标,等价于y2属性。

    • 示例

       rect.b = 100
  • + bottom : number

    矩形右下角的Y坐标,等价于y2属性。

    • 示例

       rect.bottom = 100
  • + h : number

    矩形的高度,相当于math.abs(y2y1);修改h时,y2也会随之调整为y1 + h。

    • 示例

       rect.h = 100
  • + height : number

    矩形的高度,等价于h属性。

    • 示例

       rect.height = 100
  • + l : number

    矩形左上角的X坐标,等价于x1属性。

    • 示例

       rect.l = 10.5
  • + left : number

    矩形左上角的X坐标,等价于x1属性。

    • 示例

       rect.left = 10.5
  • + name : string

    矩形的名称。

    • 示例

       rect.name = 'This is a rect.'
  • + r : number

    矩形右下角的X坐标,等价于x2属性。

    • 示例

       rect.r = 100
  • + right : number

    矩形右下角的X坐标,等价于x2属性。

    • 示例

       rect.right = 100
  • + t : number

    矩形左上角的Y坐标,等价于y1属性。

    • 示例

       rect.t = 10.5
  • + top : number

    矩形左上角的Y坐标,等价于y1属性。

    • 示例

       rect.top = 10.5
  • + w : number

    矩形的宽度,相当于math.abs(x2x1);修改w时,x2也会随之调整为x1 + w。

    • 示例

       rect.w = 100
  • + width : number

    矩形的宽度,等价于w属性。

    • 示例

       rect.width = 100
  • + x1 : number

    矩形左上角的X坐标。

    • 示例

       rect.x1 = 10.5
  • + x2 : number

    矩形右下角的X坐标。

    • 示例

       rect.x2 = 100
  • + y1 : number

    矩形左上角的Y坐标。

    • 示例

       rect.y1 = 10.5
  • + y2 : number

    矩形右下角的Y坐标。

    • 示例

       rect.y2 = 100

只读属性展开

  • + cx : number

    矩形中心点的X坐标。

    • 示例

       print(rect.cx)
  • + cy : number

    矩形中心点的Y坐标。

    • 示例

       print(rect.cy)

构造方法展开

  • + function _Rect() : _Rect

    构造一个矩形。

    • 返回
    • 新构造的矩形,x1/y1/x2/y2属性默认值为0,name属性默认值为空字符串。
    • 示例

       rect = _Rect.new()
  • + function _Rect(rect : _Rect) : _Rect

    从源矩形构造一个矩形。

    • 参数
    • rect : 源矩形
    • 返回
    • 新构造的矩形,所有属性和源矩形相同。
    • 示例

       rect = _Rect.new(srcrect)
  • + function _Rect(v1 : _Vector2, v2 : _Vector2) : _Rect

    从两个二维坐标构造一个矩形。

    • 参数
    • v1 : 矩阵左上角二维坐标
    • v2 : 矩阵右下角二维坐标
    • 返回
    • 新构造的矩形,x1/y1属性对应v1,x2/y2属性对应v2,name属性默认值为空字符串。
    • 示例

       rect = _Rect.new(v1, v2)
  • + function _Rect(x1 : number, y1 : number, x2 : number, y2 : number) : _Rect

    从四个坐标构造一个矩形。

    • 参数
    • x1 : 矩形左上角的X坐标
    • y1 : 矩形左上角的Y坐标
    • x2 : 矩形右下角的X坐标
    • y2 : 矩形右下角的Y坐标
    • 返回
    • 新构造的矩形,x1/y1/x2/y2属性分别对应四个参数,name属性默认值为空字符串。
    • 示例

       rect = _Rect.new(10.5, 10.5, 100, 100)

静态方法展开

  • + function intersect(rect1 : _Rect, rect2 : _Rect [, out : _Rect ]) : _Rect

    求两个矩形的相交矩形。

    • 参数
    • rect1 : 源矩形1
    • rect2 : 源矩形2
    • out : 结果矩形,可选参数,如果指定了out,则函数不会构造一个新矩阵,而是使用out作为返回值
    • 返回
    • 相交运算的结果矩阵。
    • 示例

       rect = _Rect.intersect(rect1, rect2)
      rect = _Rect.intersect(rect1, rect2, rect)
  • + function union(rect1 : _Rect, rect2 : _Rect [, out : _Rect ]) : _Rect

    求两个矩形的合并矩形。

    • 参数
    • rect1 : 源矩形1
    • rect2 : 源矩形2
    • out : 结果矩形,可选参数,如果指定了out,则函数不会构造一个新矩阵,而是使用out作为返回值
    • 返回
    • 合并运算的结果矩阵。
    • 示例

       rect = _Rect.union(rect1, rect2)
      rect = _Rect.union(rect1, rect2, rect)

公共方法展开

  • + function deflate(x : number, y : number)
    function deflate(v : _Vector2)

    从中心点向内收缩矩形。

    • 参数
    • x : X轴的收缩值
    • y : Y轴的收缩值
    • v : 二维坐标,同时指定X/Y轴的收缩值
    • 说明
    • 矩形的x1/y1/x2/y2,同时向矩形中心点内移动。
    • 相当于:x1 += x; x2 -= x; y1 += y; y2 -= y;
    • inflate(x, y) 等价于 deflate(-x, -y)
    • 示例

       rect:deflate(-10, -10)
      rect:deflate(v)
  • + function inflate(x : number, y : number)
    function inflate(v : _Vector2)

    从中心点向外扩张矩形。

    • 参数
    • x : X轴的扩张值
    • y : Y轴的扩张值
    • v : 二维坐标,同时指定X/Y轴的扩张值
    • 说明
    • 矩形的x1/y1/x2/y2,同时向矩形中心点外移动。
    • 相当于:x1 -= x; x2 += x; y1 -= y; y2 += y;
    • 示例

       rect:inflate(10, 10)
      rect:inflate(v)
  • + function merge(x : number, y : number)
    function merge(v : _Vector2)

    扩张矩阵使其包含新增点。

    • 参数
    • x : 新增点X轴的坐标
    • y : 新增点Y轴的坐标
    • v : 新增点的二维坐标
    • 说明
    • 矩形的x1/y1/x2/y2,分别向左/上/右/下移动,以包括新增点(x, y)或v。
    • 相当于:x1 = min(x1, x); y1 = min(y1, y); x2 = max(x2, x); y2 = max(y2, y);
    • 示例

       rect:merge(50, 100)
      rect:merge(v)
  • + function offset(x : number, y : number)
    function offset(v : _Vector2)

    偏移矩形。

    • 参数
    • x : X轴的偏移量
    • y : Y轴的偏移量
    • v : 二维坐标,同时指定X/Y轴的偏移量
    • 说明
    • 矩形的x1/y1/x2/y2四个属性分别加上偏移量(x, y)或(v.x, v.y)。
    • 相当于:x1 += x; x2 += x; y1 += y; y2 += y;
    • 示例

       rect:offset(5, 10)
      rect:offset(v)

代码示例

    _app:onIdle(function()
    local rect = _Rect.new(50, 50, _rd.w - 50, _rd.h - 50)
    _rd:drawRect(rect, _Color.Green)
    rect:offset(-20, -20)
    _rd:drawRect(rect, _Color.Red)
    rect:offset(40, 40)
    _rd:drawRect(rect, _Color.Blue)
    end)
问题反馈(登录才可以发表哦!)