| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | var Path = require("../Path");var _subPixelOptimize = require("../helper/subPixelOptimize");var subPixelOptimizeLine = _subPixelOptimize.subPixelOptimizeLine;/** * 直线 * @module zrender/graphic/shape/Line */// Avoid create repeatly.var subPixelOptimizeOutputShape = {};var _default = Path.extend({  type: 'line',  shape: {    // Start point    x1: 0,    y1: 0,    // End point    x2: 0,    y2: 0,    percent: 1  },  style: {    stroke: '#000',    fill: null  },  buildPath: function (ctx, shape) {    var x1;    var y1;    var x2;    var y2;    if (this.subPixelOptimize) {      subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);      x1 = subPixelOptimizeOutputShape.x1;      y1 = subPixelOptimizeOutputShape.y1;      x2 = subPixelOptimizeOutputShape.x2;      y2 = subPixelOptimizeOutputShape.y2;    } else {      x1 = shape.x1;      y1 = shape.y1;      x2 = shape.x2;      y2 = shape.y2;    }    var percent = shape.percent;    if (percent === 0) {      return;    }    ctx.moveTo(x1, y1);    if (percent < 1) {      x2 = x1 * (1 - percent) + x2 * percent;      y2 = y1 * (1 - percent) + y2 * percent;    }    ctx.lineTo(x2, y2);  },  /**   * Get point at percent   * @param  {number} percent   * @return {Array.<number>}   */  pointAt: function (p) {    var shape = this.shape;    return [shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p];  }});module.exports = _default;
 |