文档手册

class Graphics.Rect

2024-07-18 12:40:20

类 Graphics.Rect

数据类型,表示 2D 矩形。

const emptyBox = Rect();
const box1 = Rect(10,10,100,100); // origin 10/10 , size 100/100
const box2 = Rect.make(10,10,100,100); // origin 10/10 , corner 100/100
const box3 = Rect(Point(10,10),Size(100,100)); // origin 10/10 , corner 100/100

// operators
const intersection = Rect(0,0,100,100) & Rect(50,50,100,100); // Rect(50,50,50,50)
const union = Rect(0,0,100,100) | Rect(50,50,100,100); // Rect(0,0,150,150)

constructor

矩形实例可以通过 new Rect(...) Rect(...) “convesrsion”形式构造。

  • Rect() - 构造空矩形;

  • Rect(Point) - 构造空矩形,其原点设置为点;

  • Rect(Size) - 构造矩形,其原点设置为 [0,0],size 设置为 Size;

  • Rect(Point,Size) - 构造矩形,其原点设置为 Point,size 设置为 Size;

  • Rect(Point,Point) - 构造矩形,其原点和角设置为点 s;

  • Rect(Size,Size) - 构造矩形,其原点和角设置为 Size s;

  • Rect(Rect) - 构造矩形的副本;

  • Rect(x,y,w,h) - 从四个数字构造矩形;

properties:

x, y

  • x - 数字,起源.x

  • y - 数字,origin.y

width, height

  • width - 数字,尺寸.x

  • height - 数字,大小.y

left, top, right, bottom

  • left - 数字,起源.x

  • top - 数字,origin.y

  • right - 数字,角落.x

  • bottom - 数字,角落.y

origin

点,矩形的上/左点

corner

点,矩形的底部/右点

size

矩形的大小、尺寸

methods:

pointOf()

pointOf(which:int):Point

返回矩形的九个点之一。

这是范围 1 中的数字......9、见键盘上的NUMPAD数字:7-上/左,5-居中等。

moveTo

moveTo(pos:Point [,which = 7]): Rect

返回新的矩形,即此矩形的副本,方法是将其 which 指向移动到 POS。

 const rc = Rect(Point(10,10), Size(10,10));
const moved = rc.moveTo(Point(10,10),3);
// moved origin == Point(0,0);

isEmpty()

isEmpty(): bool

如果矩形为空,则返回 true。

overlaps()

overlaps(Rect): bool

如果此矩形与另一个矩形重叠,则返回 true。等价物 !(thisRect & otherRect).isEmpty()

contains()

contains(Rect): bool

如果此 rect 完全包含另一个 rect 则返回 true。等价物 !(thisRect & otherRect) == otherRect

contains(Point): bool

如果此矩形包含另一个点,则返回 true。

distance()

distance(Point): float

返回矩形和点之间的最小距离,如果点位于矩形内,则返回零。

normalize()

normalize(): Rect

返回矩形的规范化副本,因此 rect.origin < rect.corner 和 rect.size >= 0。

inflate()

inflate(Size): Rect
inflate(topleft:Size, bottomright: Size): Rect

通过向外移动矩形点来返回矩形的膨胀副本。 提示

thisRect.inflate(Size) 等价于 newRect = thisRect >> Size

deflate()

deflate(Size): Rect
deflate(topleft:Size, bottomright: Size): Rect

通过向内移动矩形点来返回矩形的放气副本。

提示

thisRect.deflate(Size) 等价于 newRect = thisRect << Size

operators:

Rect 支持以下运算符:

  • rect * n|size - 乘以数字或大小(缩放);

  • rect / n|size - 按数量或大小划分(缩放);

  • rect + point|size - 按大小移动矩形;

  • rect - point|size - 按大小移动矩形;

  • rect == rect - 两个矩形相等,实现使用浮点 EPSILON 精度;

  • rect << n|size - 按数量或大小放气矩形;

  • rect >> n|size - 按数字或大小给矩形充气;

  • rect | rect - 两个矩形的并集,返回包含两个矩形的最小轮廓矩形

  • rect | point - 此矩形和点的并集,返回包含此矩形和点的最小轮廓直角

  • rect & rect - 两个矩形的交集,返回两个矩形中包含的最大矩形。在没有交集的情况下可以返回空矩形。

static methods:

make()

Rect.make(x1,y1,x2,y2):Rect

从原点 (x1,y1) 和角 (x2,y2) 点构造矩形的静态构造函数。

Rect.make(Point,Size):Rect

静态构造函数,用于从原点和大小构造矩形。

Rect.make(Point,Point):Rect

静态构造函数,用于从原点和角点构造矩形。