1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- var Path = require("../Path");
- var roundRectHelper = require("../helper/roundRect");
- var _subPixelOptimize = require("../helper/subPixelOptimize");
- var subPixelOptimizeRect = _subPixelOptimize.subPixelOptimizeRect;
- /**
- * 矩形
- * @module zrender/graphic/shape/Rect
- */
- // Avoid create repeatly.
- var subPixelOptimizeOutputShape = {};
- var _default = Path.extend({
- type: 'rect',
- shape: {
- // 左上、右上、右下、左下角的半径依次为r1、r2、r3、r4
- // r缩写为1 相当于 [1, 1, 1, 1]
- // r缩写为[1] 相当于 [1, 1, 1, 1]
- // r缩写为[1, 2] 相当于 [1, 2, 1, 2]
- // r缩写为[1, 2, 3] 相当于 [1, 2, 3, 2]
- r: 0,
- x: 0,
- y: 0,
- width: 0,
- height: 0
- },
- buildPath: function (ctx, shape) {
- var x;
- var y;
- var width;
- var height;
- if (this.subPixelOptimize) {
- subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);
- x = subPixelOptimizeOutputShape.x;
- y = subPixelOptimizeOutputShape.y;
- width = subPixelOptimizeOutputShape.width;
- height = subPixelOptimizeOutputShape.height;
- subPixelOptimizeOutputShape.r = shape.r;
- shape = subPixelOptimizeOutputShape;
- } else {
- x = shape.x;
- y = shape.y;
- width = shape.width;
- height = shape.height;
- }
- if (!shape.r) {
- ctx.rect(x, y, width, height);
- } else {
- roundRectHelper.buildPath(ctx, shape);
- }
- ctx.closePath();
- return;
- }
- });
- module.exports = _default;
|