class Graphics.Rect
类 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
- 数字,起源.xy
- 数字,origin.y
width, height
width
- 数字,尺寸.xheight
- 数字,大小.y
left, top, right, bottom
left
- 数字,起源.xtop
- 数字,origin.yright
- 数字,角落.xbottom
- 数字,角落.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
静态构造函数,用于从原点和角点构造矩形。