• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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```