Teal TealUI

矩形运算util/rect

提供图形计算相关函数。

API
全局
Point 接口
Size 接口
Rect 接口
Circle 接口

API

全局

函数 描述
inRect(rect, point)(rect:Rect, point:Point):boolean

判断一个点是否在指定的矩形区域(含边框)内。

参数 类型 描述 默认值
rect* Rect
point* Point

返回值

类型:boolean

如果在区域内或区域边界上则返回 true,否则返回 false。

示例

inRect({x: 0, y: 0, width: 10, height: 10}, {x: 20, y: 20}) // false
inRect({x: 0, y: 0, width: 10, height: 10}, {x: 5, y: 5}) // true
inRect({x: 0, y: 0, width: 10, height: 10}, {x: 0, y: 0}) // true

判断一个点是否在指定的矩形区域(含边框)内。

onRect(rect, point)(rect:Rect, point:Point):boolean

判断一个点是否在指定的矩形区域的边框上。

参数 类型 描述 默认值
rect* Rect
point* Point

返回值

类型:boolean

如果在区域边界上则返回 true,否则返回 false。

示例

onRect({x: 0, y: 0, width: 10, height: 10}, {x: 20,y: 20}) // false
onRect({x: 0, y: 0, width: 10, height: 10}, {x: 5, y: 5}) // false
onRect({x: 0, y: 0, width: 10, height: 10}, {x: 0, y: 0}) // true
onRect({x: 0, y: 0, width: 10, height: 10}, {x: 0, y: 3}) // true

判断一个点是否在指定的矩形区域的边框上。

offsetRect(rect, offset)(rect:Rect, offset:Point):Rect

计算区域偏移指定距离后的新区域。

参数 类型 描述 默认值
rect* Rect
offset* Point

返回值

类型:Rect

返回新区域。

示例

offsetRect({x: 0, y: 0, width: 10, height: 10}, {x: 10, y: 20}) // {x: 10, y: 20, width: 10, height: 10}

计算区域偏移指定距离后的新区域。

intersectRect(rect1, rect2)(rect1:Rect, rect2:Rect):Rect

计算两个区域的交集部分。

参数 类型 描述 默认值
rect1* Rect
rect2* Rect

返回值

类型:Rect

返回公共区域。如果区域无交集则返回长宽为 0 的区域。

示例

intersectRect({x: 0, y: 0, width: 10, height: 10}, {x: 5, y: 5, width: 10, height: 10}) // {x: 5, y: 5, width: 5, height: 5}
intersectRect({x: 0, y: 0, width: 10, height: 10}, {x: 11, y: 11, width: 10, height: 10}) // {x: 0, y: 0, width: 0, height: 0}

计算两个区域的交集部分。

unionRect(rect1, rect2)(rect1:Rect, rect2:Rect):Rect

计算两个区域的并集部分。

参数 类型 描述 默认值
rect1* Rect
rect2* Rect

返回值

类型:Rect

返回并集区域。如果区域无交集则返回长宽为 0 的区域。

示例

unionRect({x: 0, y: 0, width: 10, height: 10}, {x: 5, y: 5, width: 10, height: 10}) // {x: 0, y: 0, width: 15, height: 15}
unionRect({x: 0, y: 0, width: 10, height: 10}, {x: 5, y: 5, width: 2, height: 2}) // {x: 0, y: 0, width: 10, height: 10}
unionRect({x: 0, y: 0, width: 10, height: 10}, {x: 15, y: 15, width: 10, height: 10}) // {x: 0, y: 0, width: 25, height: 25}

计算两个区域的并集部分。

inCircle(circle, point)(circle:Circle, point:Point):boolean

判断一个点是否在指定的正圆区域(含边框)内。

参数 类型 描述 默认值
circle* Circle
point* Point

返回值

类型:boolean

如果在区域内或区域边界上则返回 true,否则返回 false。

示例

inCircle({x: 2, y: 2, r: 1}, {x: 2, y: 2}) // true
inCircle({x: 2, y: 2, r: 1}, {x: 3, y: 2}) // true
inCircle({x: 2, y: 2, r: 1}, {x: 4, y: 2}) // false
inCircle({x: 2, y: 2, r: 1}, {x: 3, y: 3}) // false

判断一个点是否在指定的正圆区域(含边框)内。

onCircle(circle, point)(circle:Circle, point:Point):boolean

判断一个点是否在指定的正圆区域边框上。

参数 类型 描述 默认值
circle* Circle
point* Point

返回值

类型:boolean

如果在区域内或区域边界上则返回 true,否则返回 false。

示例

onCircle({x: 2, y: 2, r: 1}, {x: 3, y: 2}) // true
onCircle({x: 2, y: 2, r: 1}, {x: 2, y: 2}) // false
onCircle({x: 2, y: 2, r: 1}, {x: 4, y: 2}) // false
onCircle({x: 2, y: 2, r: 1}, {x: 3, y: 3}) // false

判断一个点是否在指定的正圆区域边框上。

Point 接口

表示一个坐标。

字段 类型 描述
x : number

相对于屏幕左上角的水平距离(单位为像素)。

number

相对于屏幕左上角的水平距离(单位为像素)。

y : number

相对于屏幕左上角的垂直距离(单位为像素)。

number

相对于屏幕左上角的垂直距离(单位为像素)。

Size 接口

表示一个大小。

字段 类型 描述
width : number

宽度(单位为像素)。

number

宽度(单位为像素)。

height : number

高度(单位为像素)。

number

高度(单位为像素)。

Rect 接口

继承自:Point, Size

表示一个矩形区域。

字段 类型 描述 继承自
x : number

相对于屏幕左上角的水平距离(单位为像素)。

继承自

Point

number

相对于屏幕左上角的水平距离(单位为像素)。

Point
y : number

相对于屏幕左上角的垂直距离(单位为像素)。

继承自

Point

number

相对于屏幕左上角的垂直距离(单位为像素)。

Point
width : number

宽度(单位为像素)。

继承自

Size

number

宽度(单位为像素)。

Size
height : number

高度(单位为像素)。

继承自

Size

number

高度(单位为像素)。

Size

Circle 接口

继承自:Point

表示一个正圆区域。

字段 类型 描述 继承自
r : number

圆型的半径(单位:像素)。

number

圆型的半径(单位:像素)。

x : number

相对于屏幕左上角的水平距离(单位为像素)。

继承自

Point

number

相对于屏幕左上角的水平距离(单位为像素)。

Point
y : number

相对于屏幕左上角的垂直距离(单位为像素)。

继承自

Point

number

相对于屏幕左上角的垂直距离(单位为像素)。

Point