1# Class (RectUtils) 2 3<!--Kit: ArkGraphics 2D--> 4<!--Subsystem: Graphics--> 5<!--Owner: @hangmengxin--> 6<!--Designer: @wangyanglan--> 7<!--Tester: @nobuggers--> 8<!--Adviser: @ge-yafang--> 9 10> **说明:** 11> 12> - 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 13> 14> - 本Class首批接口从API version 20开始支持。 15> 16> - 本模块使用屏幕物理像素单位px。 17> 18> - 本模块为单线程模型策略,需要调用方自行管理线程安全和上下文状态的切换。 19 20提供了处理矩形的工具。 21 22主要的使用场景: 23 241. 矩形快速构建与获取基本属性,如构造新矩形、拷贝矩形、获取矩形的宽高以及中心点等。 25 262. 边界计算与调整,如获取包含关系、计算与更新矩形之间交集和并集,更新边界值等。 27 28## 导入模块 29 30```ts 31import { drawing } from '@kit.ArkGraphics2D'; 32``` 33 34## makeEmpty<sup>20+</sup> 35 36static makeEmpty(): common2D.Rect 37 38创建一个上下左右边界坐标都是0的矩形。 39 40**系统能力:** SystemCapability.Graphics.Drawing 41 42**返回值:** 43 44| 类型 | 说明 | 45| ------- | ------------------------- | 46| [common2D.Rect](js-apis-graphics-common2D.md#rect) | 创建的矩形对象。 | 47 48**示例:** 49 50```ts 51import { drawing, common2D } from '@kit.ArkGraphics2D'; 52 53let rect = drawing.RectUtils.makeEmpty(); 54``` 55 56## makeLtrb<sup>20+</sup> 57 58static makeLtrb(left: number, top: number, right: number, bottom: number): common2D.Rect 59 60创建指定上下左右边界的矩形。 61 62**系统能力:** SystemCapability.Graphics.Drawing 63 64**参数:** 65 66| 参数名 | 类型 | 必填 | 说明 | 67| ------ | ------ | ---- | -------------- | 68| left | number | 是 | 矩形的左上角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 69| top | number | 是 | 矩形的左上角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 70| right | number | 是 | 矩形的右下角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 71| bottom | number | 是 | 矩形的右下角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 72 73**返回值:** 74 75| 类型 | 说明 | 76| ------- | ------------------------- | 77| [common2D.Rect](js-apis-graphics-common2D.md#rect) | 创建的矩形。 | 78 79**示例:** 80 81```ts 82import { drawing, common2D } from '@kit.ArkGraphics2D'; 83 84let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 85``` 86 87## makeCopy<sup>20+</sup> 88 89static makeCopy(src: common2D.Rect): common2D.Rect 90 91拷贝一个矩形。 92 93**系统能力**:SystemCapability.Graphics.Drawing 94 95**参数:** 96 97| 参数名 | 类型 | 必填 | 说明 | 98| ------ | ------ | ---- | -------------- | 99| src | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于拷贝的矩形。 | 100 101 102**返回值:** 103 104| 类型 | 说明 | 105| ------- | ------------------------- | 106| [common2D.Rect](js-apis-graphics-common2D.md#rect) | 创建的新矩形。 | 107 108**示例:** 109 110```ts 111import { drawing, common2D } from '@kit.ArkGraphics2D'; 112let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 113let rect2 = drawing.RectUtils.makeCopy(rect); 114console.info('rect2.left:', rect2.left); 115console.info('rect2.top: ', rect2.top); 116console.info('rect2.right: ', rect2.right); 117console.info('rect2.bottom: ', rect2.bottom); 118``` 119 120## getWidth<sup>20+</sup> 121 122static getWidth(rect: common2D.Rect): number 123 124获取矩形的宽度。 125 126**系统能力:** SystemCapability.Graphics.Drawing 127 128**参数:** 129 130| 参数名 | 类型 | 必填 | 说明 | 131| ------ | ------ | ---- | -------------- | 132| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 133 134 135**返回值:** 136 137| 类型 | 说明 | 138| ------- | ------------------------- | 139| number | 返回矩形的宽。如果矩形的左边界大于右边界,获取的宽度为负值,左边界小于右边界则为正值。 | 140 141**示例:** 142 143```ts 144import { drawing, common2D } from '@kit.ArkGraphics2D'; 145let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 146let width = drawing.RectUtils.getWidth(rect); 147console.info('width:', width); 148``` 149 150## getHeight<sup>20+</sup> 151 152static getHeight(rect: common2D.Rect): number 153 154获取矩形的高度。 155 156**系统能力:** SystemCapability.Graphics.Drawing 157 158**参数:** 159 160| 参数名 | 类型 | 必填 | 说明 | 161| ------ | ------ | ---- | -------------- | 162| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 163 164**返回值:** 165 166| 类型 | 说明 | 167| ------- | ------------------------- | 168| number | 返回矩形的高。如果矩形的上边界大于下边界,获取的高度为负值,上边界小于下边界则为正值。| 169 170**示例:** 171 172```ts 173import { drawing, common2D } from '@kit.ArkGraphics2D'; 174let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 175let height = drawing.RectUtils.getHeight(rect); 176``` 177 178## centerX<sup>20+</sup> 179 180static centerX(rect: common2D.Rect): number 181 182获取矩形中心的横坐标。 183 184**系统能力:** SystemCapability.Graphics.Drawing 185 186**参数:** 187 188| 参数名 | 类型 | 必填 | 说明 | 189| ------ | ------ | ---- | -------------- | 190| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 191 192**返回值:** 193 194| 类型 | 说明 | 195| ------- | ------------------------- | 196| number | 返回矩形中心的横坐标。 | 197 198**示例:** 199 200```ts 201import { drawing, common2D } from '@kit.ArkGraphics2D'; 202let rect = drawing.RectUtils.makeLtrb(20, 30, 30, 40); 203let x = drawing.RectUtils.centerX(rect); 204``` 205 206## centerY<sup>20+</sup> 207 208static centerY(rect: common2D.Rect): number 209 210获取矩形中心的纵坐标。 211 212**系统能力:** SystemCapability.Graphics.Drawing 213 214**参数:** 215 216| 参数名 | 类型 | 必填 | 说明 | 217| ------ | ------ | ---- | -------------- | 218| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 219 220**返回值:** 221 222| 类型 | 说明 | 223| ------- | ------------------------- | 224| number | 返回矩形中心的纵坐标。 | 225 226**示例:** 227 228```ts 229import { drawing, common2D } from '@kit.ArkGraphics2D'; 230let rect = drawing.RectUtils.makeLtrb(20, 30, 30, 40); 231let x = drawing.RectUtils.centerY(rect); 232``` 233 234## contains<sup>20+</sup> 235 236static contains(rect: common2D.Rect, other: common2D.Rect): boolean 237 238判断一个矩形是否完全包含另外一个矩形。 239 240**系统能力:** SystemCapability.Graphics.Drawing 241 242**参数:** 243 244| 参数名 | 类型 | 必填 | 说明 | 245| ------ | ------ | ---- | -------------- | 246| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 247| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 判断是否被包含的矩形对象。 | 248 249**返回值:** 250 251| 类型 | 说明 | 252| ------- | ------------------------- | 253| boolean | 返回矩形是否完全包含另一个矩形的结果。true表示指定矩形在另一个矩形内部或者相等,false表示指定矩形在另一个矩形外部。空的矩形不包含任何矩形。| 254 255**示例:** 256 257```ts 258import { drawing, common2D } from '@kit.ArkGraphics2D'; 259let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 260let rect2 = drawing.RectUtils.makeLtrb(0, 0, 40, 40); 261let isContains = drawing.RectUtils.contains(rect2, rect); 262console.info('isContains: ', isContains); 263``` 264 265## contains<sup>20+</sup> 266 267static contains(rect: common2D.Rect, left: number, top: number, right: number, bottom: number): boolean 268 269判断一个矩形是否完全包含另外一个矩形(另一个矩形分别用左上右下坐标表示)。 270 271**系统能力:** SystemCapability.Graphics.Drawing 272 273**参数:** 274 275| 参数名 | 类型 | 必填 | 说明 | 276| ------ | ------ | ---- | -------------- | 277| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 278| left | number | 是 | 矩形的左上角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 279| top | number | 是 | 矩形的左上角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 280| right | number | 是 | 矩形的右下角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 281| bottom | number | 是 | 矩形的右下角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 282 283**返回值:** 284 285| 类型 | 说明 | 286| ------- | ------------------------- | 287| boolean | 返回矩形是否完全包含由左上右下坐标组成的矩形的结果。true表示指定左上右下坐标组成的矩形在矩形的内部或者相等,false表示指定左上右下坐标组成的矩形在矩形的外部。空的矩形不包含任何矩形。| 288 289**示例:** 290 291```ts 292import { drawing, common2D } from '@kit.ArkGraphics2D'; 293let rect = drawing.RectUtils.makeLtrb(0, 0, 100, 100); 294let isContains = drawing.RectUtils.contains(rect, 10, 20, 30, 40); 295console.info('isContains :', isContains); 296``` 297 298## contains<sup>20+</sup> 299 300static contains(rect: common2D.Rect, x: number, y: number): boolean 301 302判断一个矩形是否完全包含一个点。 303 304**系统能力:** SystemCapability.Graphics.Drawing 305 306**参数:** 307 308| 参数名 | 类型 | 必填 | 说明 | 309| ------ | ------ | ---- | -------------- | 310| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 311| x | number | 是 | 要判断点的x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 312| y | number | 是 | 要判断点的y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 313 314**返回值:** 315 316| 类型 | 说明 | 317| ------- | ------------------------- | 318| boolean | 返回矩形是否完全包含x、y组成的点的结果。true表示矩形完全包含x、y组成的点,false表示矩形不完全包含x、y组成的点。左边界和上边界属于矩形内部,右边界和下边界不属于矩形内部。空的矩形不包含任何点。| 319 320**示例:** 321 322```ts 323import { drawing, common2D } from '@kit.ArkGraphics2D'; 324let rect = drawing.RectUtils.makeLtrb(0, 0, 100, 100); 325let isContains = drawing.RectUtils.contains(rect, 10, 20); 326console.info('isContains: ', isContains); 327``` 328 329## inset<sup>20+</sup> 330 331static inset(rect: common2D.Rect, left: number, top: number, right: number, bottom: number): void 332 333将指定矩形的左边界、上边界、右边界和下边界分别和传入的"左上右下"的值相加。 334 335**系统能力:** SystemCapability.Graphics.Drawing 336 337**参数:** 338 339| 参数名 | 类型 | 必填 | 说明 | 340| ------ | ------ | ---- | -------------- | 341| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 342| left | number | 是 | 添加到矩形左边界的值(矩形左上角横坐标),该参数为浮点数。0表示不进行任何运算,正数表示进行相加运算,负数表示相减运算。 | 343| top | number | 是 | 添加到矩形上边界的值(矩形左上角纵坐标),该参数为浮点数。0表示不进行任何运算,正数表示进行相加运算,负数表示相减运算。 | 344| right | number | 是 | 添加到矩形右边界的值(矩形右下角横坐标),该参数为浮点数。0表示不进行任何运算,正数表示进行相加运算,负数表示相减运算。 | 345| bottom | number | 是 | 添加到矩形下边界的值(矩形右下角纵坐标),该参数为浮点数。0表示不进行任何运算,正数表示进行相加运算,负数表示相减运算。 | 346 347**示例:** 348 349```ts 350import { drawing, common2D } from '@kit.ArkGraphics2D'; 351let rect = drawing.RectUtils.makeLtrb(10, 10, 20, 20); 352drawing.RectUtils.inset(rect, 10, -20, 30, 60); 353console.info('rect.left:', rect.left); 354console.info('rect.top: ', rect.top); 355console.info('rect.right: ', rect.right); 356console.info('rect.bottom: ', rect.bottom); 357``` 358 359## intersect<sup>20+</sup> 360 361static intersect(rect: common2D.Rect, other: common2D.Rect): boolean 362 363计算两个矩形的交集区域,并将交集结果更新到第一个入参代表的矩形区域。 364 365**系统能力:** SystemCapability.Graphics.Drawing 366 367**参数:** 368 369| 参数名 | 类型 | 必填 | 说明 | 370| ------ | ------ | ---- | -------------- | 371| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算交集的原矩形。 | 372| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算交集的另一个矩形。 | 373 374**返回值:** 375 376| 类型 | 说明 | 377| ------- | ------------------------- | 378| boolean | 返回两个矩形是否有交集的结果。true表示两个矩形有交集,false表示两个矩形没有交集。 | 379 380**示例:** 381 382```ts 383import { drawing, common2D } from '@kit.ArkGraphics2D'; 384let rect = drawing.RectUtils.makeLtrb(0, 0, 20, 20); 385let rect2 = drawing.RectUtils.makeLtrb(10, 10, 40, 40); 386let isIntersect = drawing.RectUtils.intersect(rect, rect2); 387console.info('isIntersect :', isIntersect); 388console.info('rect.left:', rect.left); 389console.info('rect.top: ', rect.top); 390console.info('rect.right: ', rect.right); 391console.info('rect.bottom: ', rect.bottom); 392``` 393 394## isIntersect<sup>20+</sup> 395 396static isIntersect(rect: common2D.Rect, other: common2D.Rect): boolean 397 398判断两个矩形是否相交。 399 400**系统能力:** SystemCapability.Graphics.Drawing 401 402**参数:** 403 404| 参数名 | 类型 | 必填 | 说明 | 405| ------ | ------ | ---- | -------------- | 406| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算交集的原矩形。 | 407| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算交集的另一个矩形。 | 408 409**返回值:** 410 411| 类型 | 说明 | 412| ------- | ------------------------- | 413| boolean | 返回两个矩形是否有交集的结果。true表示指定矩形与原矩形相交,false表示指定矩形和原矩形没有交集。两矩形仅边重叠或点相交返回false。| 414 415**示例:** 416 417```ts 418import { drawing, common2D } from '@kit.ArkGraphics2D'; 419let rect = drawing.RectUtils.makeLtrb(0, 0, 20, 20); 420let rect2 = drawing.RectUtils.makeLtrb(10, 10, 40, 40); 421let isIntersect = drawing.RectUtils.isIntersect(rect, rect2); 422console.info('isIntersect :', isIntersect); 423``` 424 425## union<sup>20+</sup> 426 427static union(rect: common2D.Rect, other: common2D.Rect): void 428 429计算矩形的并集区域,并将并集结果更新到第一个入参表示的矩形区域。如果第一个入参矩形为空,则将并集结果更新到第二个入参代表的矩形区域;如果第二个入参的矩形为空,则不进行任何操作。 430 431**系统能力:** SystemCapability.Graphics.Drawing 432 433**参数:** 434 435| 参数名 | 类型 | 必填 | 说明 | 436| ------ | ------ | ---- | -------------- | 437| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算并集的原矩形。 | 438| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于计算并集的另一个矩形。 | 439 440**示例:** 441 442```ts 443import { drawing, common2D } from '@kit.ArkGraphics2D'; 444let rect = drawing.RectUtils.makeLtrb(0, 0, 20, 20); 445let rect2 = drawing.RectUtils.makeLtrb(10, 10, 40, 40); 446drawing.RectUtils.union(rect, rect2); 447console.info('rect.left:', rect.left); 448console.info('rect.top: ', rect.top); 449console.info('rect.right: ', rect.right); 450console.info('rect.bottom: ', rect.bottom); 451``` 452 453## isEmpty<sup>20+</sup> 454 455static isEmpty(rect: common2D.Rect): boolean 456 457判断矩形是否为空(左边界大于等于右边界或者上边界大于等于下边界)。 458 459**系统能力:** SystemCapability.Graphics.Drawing 460 461**参数:** 462 463| 参数名 | 类型 | 必填 | 说明 | 464| ------ | ------ | ---- | -------------- | 465| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于判断的矩形对象。 | 466 467**返回值:** 468 469| 类型 | 说明 | 470| ------- | ------------------------- | 471| boolean | 返回矩形是否为空的结果。true表示矩形是空,false表示矩形不为空。 | 472 473**示例:** 474 475```ts 476import { drawing, common2D } from '@kit.ArkGraphics2D'; 477let rect = drawing.RectUtils.makeEmpty(); 478let isEmpty = drawing.RectUtils.isEmpty(rect); 479console.info('isEmpty :', isEmpty); 480let rect2 = drawing.RectUtils.makeLtrb(0, 0, 20, 20); 481isEmpty = drawing.RectUtils.isEmpty(rect2); 482console.info('isEmpty :', isEmpty); 483``` 484 485## offset<sup>20+</sup> 486 487static offset(rect: common2D.Rect, dx: number, dy: number): void 488 489对矩形进行平移。 490 491**系统能力:** SystemCapability.Graphics.Drawing 492 493**参数:** 494 495| 参数名 | 类型 | 必填 | 说明 | 496| ------ | ------ | ---- | -------------- | 497| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 发生偏移的矩形区域。 | 498| dx | number | 是 | 水平方向平移的距离,该参数为浮点数。0表示不平移,负数表示向左平移,正数表示向右平移。 | 499| dy | number | 是 | 竖直方向平移的距离,该参数为浮点数。0表示不平移,负数表示向上平移,正数表示向下平移。 | 500 501**示例:** 502 503```ts 504import { drawing, common2D } from '@kit.ArkGraphics2D'; 505let rect = drawing.RectUtils.makeLtrb(0, 0, 20, 20); 506drawing.RectUtils.offset(rect, 10, 20); 507console.info('rect.left:', rect.left); 508console.info('rect.top: ', rect.top); 509console.info('rect.right: ', rect.right); 510console.info('rect.bottom: ', rect.bottom); 511``` 512 513## offsetTo<sup>20+</sup> 514 515static offsetTo(rect: common2D.Rect, newLeft: number, newTop: number): void 516 517将矩形平移到指定位置。 518 519**系统能力:** SystemCapability.Graphics.Drawing 520 521**参数:** 522 523| 参数名 | 类型 | 必填 | 说明 | 524| ------ | ------ | ---- | -------------- | 525| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 发生偏移的矩形区域。 | 526| newLeft | number | 是 | 要平移到的对应位置的x轴坐标,浮点数。0表示坐标原点,负数位于坐标原点左侧,正数位于坐标原点右侧。 | 527| newTop | number | 是 | 要平移到的对应位置的y轴坐标,浮点数。0表示坐标原点,负数位于坐标原点上侧,正数位于坐标原点下侧。 | 528 529**示例:** 530 531```ts 532import { drawing, common2D } from '@kit.ArkGraphics2D'; 533let rect = drawing.RectUtils.makeLtrb(20, 20, 40, 40); 534drawing.RectUtils.offsetTo(rect, 10, 20); 535console.info('rect.left:', rect.left); 536console.info('rect.top: ', rect.top); 537console.info('rect.right: ', rect.right); 538console.info('rect.bottom: ', rect.bottom); 539``` 540 541## setRect<sup>20+</sup> 542 543static setRect(rect: common2D.Rect, other: common2D.Rect): void 544 545使用另一个矩形对当前矩形进行赋值。 546 547**系统能力:** SystemCapability.Graphics.Drawing 548 549**参数:** 550 551| 参数名 | 类型 | 必填 | 说明 | 552| ------ | ------ | ---- | -------------- | 553| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 原矩形。 | 554| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于赋值的矩形。 | 555 556**示例:** 557 558```ts 559import { drawing, common2D } from '@kit.ArkGraphics2D'; 560let rect = drawing.RectUtils.makeLtrb(10, 20, 30, 40); 561let rect2 = drawing.RectUtils.makeEmpty(); 562drawing.RectUtils.setRect(rect2, rect); 563console.info('rect2.left:', rect2.left); 564console.info('rect2.top: ', rect2.top); 565console.info('rect2.right: ', rect2.right); 566console.info('rect2.bottom: ', rect2.bottom); 567``` 568 569## setLtrb<sup>20+</sup> 570 571static setLtrb(rect: common2D.Rect, left: number, top: number, right: number, bottom: number): void 572 573使用传入的"上下左右"的值更新当前矩形的上下左右边界值。 574 575**系统能力**:SystemCapability.Graphics.Drawing 576 577**参数:** 578 579| 参数名 | 类型 | 必填 | 说明 | 580| ------ | ------ | ---- | -------------- | 581| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 矩形对象。 | 582| left | number | 是 | 矩形的左上角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 583| top | number | 是 | 矩形的左上角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 584| right | number | 是 | 矩形的右下角x轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点左侧,正数表示位于坐标原点右侧。 | 585| bottom | number | 是 | 矩形的右下角y轴坐标,该参数为浮点数。0表示坐标原点,负数表示位于坐标原点上侧,正数表示位于坐标原点下侧。 | 586 587**示例:** 588 589```ts 590import { drawing, common2D } from '@kit.ArkGraphics2D'; 591let rect = drawing.RectUtils.makeEmpty(); 592drawing.RectUtils.setLtrb(rect, 10, 20, 30, 60); 593console.info('rect.left:', rect.left); 594console.info('rect.top: ', rect.top); 595console.info('rect.right: ', rect.right); 596console.info('rect.bottom: ', rect.bottom); 597``` 598 599## setEmpty<sup>20+</sup> 600 601static setEmpty(rect: common2D.Rect): void 602 603将矩形的上下左右边界都设为0。 604 605**系统能力:** SystemCapability.Graphics.Drawing 606 607**参数:** 608 609| 参数名 | 类型 | 必填 | 说明 | 610| ------ | ------ | ---- | -------------- | 611| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于设置为空的矩形对象。 | 612 613**示例:** 614 615```ts 616import { drawing, common2D } from '@kit.ArkGraphics2D'; 617let rect = drawing.RectUtils.makeLtrb(10, 20, 20, 30); 618drawing.RectUtils.setEmpty(rect) 619console.info('rect.left:', rect.left); 620console.info('rect.top: ', rect.top); 621console.info('rect.right: ', rect.right); 622console.info('rect.bottom: ', rect.bottom); 623``` 624 625## sort<sup>20+</sup> 626 627static sort(rect: common2D.Rect): void 628 629如果矩形存在反转的情况(即左边界大于右边界或上边界大于下边界),则对矩形的上下(左右)边界值进行交换,使得上边界小于下边界(左边界小于右边界)。 630 631如果矩形不存在反转的情况(即左边界小于等于右边界或上边界小于等于下边界),不做任何操作。 632 633**系统能力:** SystemCapability.Graphics.Drawing 634 635**参数:** 636 637| 参数名 | 类型 | 必填 | 说明 | 638| ------ | ------ | ---- | -------------- | 639| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 用于设置的矩形对象。 | 640 641**示例:** 642 643```ts 644import { drawing, common2D } from '@kit.ArkGraphics2D'; 645let rect = drawing.RectUtils.makeLtrb(20, 40, 30, 30); 646drawing.RectUtils.sort(rect); 647console.info('rect.left:', rect.left); 648console.info('rect.top: ', rect.top); 649console.info('rect.right: ', rect.right); 650console.info('rect.bottom: ', rect.bottom); 651``` 652 653## isEqual<sup>20+</sup> 654 655static isEqual(rect: common2D.Rect, other: common2D.Rect): boolean 656 657判断两个矩形是否相等。 658 659**系统能力:** SystemCapability.Graphics.Drawing 660 661**参数:** 662 663| 参数名 | 类型 | 必填 | 说明 | 664| ------ | ------ | ---- | -------------- | 665| rect | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 需要判断的原矩形。 | 666| other | [common2D.Rect](js-apis-graphics-common2D.md#rect) | 是 | 需要判断的另一矩形。 | 667 668**返回值:** 669 670| 类型 | 说明 | 671| ------- | ------------------------- | 672| boolean | 返回两个矩形是否相等的结果。true表示两个矩形相等,false表示两个矩形不相等。 | 673 674**示例:** 675 676```ts 677import { drawing, common2D } from '@kit.ArkGraphics2D'; 678let rect = drawing.RectUtils.makeLtrb(10, 20, 20, 30); 679let rect2 = drawing.RectUtils.makeEmpty(); 680let isEqual = drawing.RectUtils.isEqual(rect, rect2); 681console.info('isEqual :', isEqual); 682```