UNPKG

vislite

Version:

灵活、快速、简单的数据可视化交互式跨端前端库

19 lines (16 loc) 725 B
export default function (painter: CanvasRenderingContext2D, contents: string, width: number, height: number, doback: (content: string, top: number) => void) { let lineNumber = 0, content = "" for (let i = 0; i < contents.length; i++) { if (painter.measureText(content + contents[i]).width > width || /\n$/.test(content)) { lineNumber += 1 doback(content, (lineNumber - 0.5) * height) content = contents[i] } else if (i == contents.length - 1) { lineNumber += 1 doback(content + contents[i], (lineNumber - 0.5) * height) } else { content += contents[i] } } return lineNumber * height }