62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
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; |