/** * 线条 */ import SGraphyItem from '../SGraphyItem' import SRect from './../types/SRect'; export default class SGraphyLineItem extends SGraphyItem { /** * 构造函数 * * @param startX 线的起始x坐标 * @param startY 线的起始y坐标 * @param endX 线的终止x坐标 * @param endY 线的终止y坐标 * @param width 线的宽度 * * @param color 线的颜色 * @param isVirtual 是否为虚线 */ constructor(startX, startY, endX, endY, color, width, isVirtual, parent = null) { super(parent) this.startX = startX this.startY = startY this.endX = endX this.endY = endY this.color = color this.width = width this.isVirtual = isVirtual } /** * Item对象边界区域 * * @return SRect */ boundingRect() { return new SRect(0, 0, this.width, this.height) } /** * 绘制线条 * * @param canvas 画布 * @param rect 绘制区域 */ onDraw(canvas, rect) { if (this.isVirtual) { canvas.setLineDash([15, 5]) } canvas.lineWidth = this.width || 1 canvas.strokeStyle = this.color || '#000' canvas.beginPath(); canvas.moveTo(this.startX, this.startY) canvas.lineTo(this.endX, this.endY) canvas.stroke() } }