多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
扩展mxPoint以实现具有双精度坐标的二维矩形。 ``` function mxRectangle(x, y, width, height) ``` **变量**: - `width` : 容纳矩形的宽度,默认为 `0` - `height` : 容纳矩形的高度,默认为 `0` **函数**: - `setRect(x, y, w, h)` : 将此矩形设定为指定的值 - `getCenterX()` : 返回中心点的X坐标 - `getCenterY()` : 返回中心点的Y坐标 ``` const rect = new mxRectangle(0, 0, 200, 30) const rect2 = new mxRectangle(10, 20, 200, 30) rect.getCenterX() // 100 rect.getCenterY() // 15 rect2.getCenterX() // 110 rect2.getCenterY() // 35 ``` - `add(rect: mxRectangle)` : 将给定的矩形添加到此矩形 ``` const rect = new mxRectangle(0, 0, 200, 30) const rect2 = new mxRectangle(10, 10, 200, 30) rect.add(rect2) rect // 210x40 ``` ![](https://img.kancloud.cn/94/ae/94aebbea443c3994766352bdcc7a8da4_554x179.png) - `intersect(rect: mxRectangle)` : 将此矩形更改为与给定矩形重叠的位置。 ``` rect.intersect(rect2) rect // 190x20 ``` ![](https://img.kancloud.cn/f0/0a/f00aaf9dcc8cb10a17d258cb9c6ab59c_555x171.png) - `grow(amount)` : 将矩形增长给定的数量,也就是说,此方法从 `x` 坐标和 `y` 坐标中减去给定的数量,然后将宽度和高度相加两倍。 ``` const rect = new mxRectangle(20, 20, 200, 30) rect.grow(20) rect // 240x70 ``` ![](https://img.kancloud.cn/e1/11/e1113391aae2bff4a2d00f1d96101987_638x255.png) - `getPoint()` : 返回左上角作为新的 `mxPoint` ``` const rect = new mxRectangle(20, 20, 200, 30) rect.getPoint() // mxPoint {x: 20, y: 20} ``` - `rotate90()` : 将此矩形围绕其中心点旋转90度。 - `equals(obj)` : 如果给定对象等于此矩形,则返回 `true` - `fromRectangle(rect: mxRectangle)` : 返回一个新的mxRectangle,它是给定矩形的副本