text: import arc from './arc';
  
  export let initPainterConfig = {
  
      // 填充色或图案
      "fillStyle": 'black',
  
      // 轮廓色或图案
      "strokeStyle": 'black',
  
      // 线条宽度(单位px，下同)
      "lineWidth": 1,
  
      // 文字水平对齐方式（"left"左对齐、"center"居中和"right"右对齐）
      "textAlign": 'left',
  
      // 文字垂直对齐方式（"middle"垂直居中、"top"上对齐和"bottom"下对齐）
      "textBaseline": 'middle',
  
      // 文字大小
      "font-size": 16,
  
      // 字体，默认"sans-serif"
      "font-family": "sans-serif",
  
      // 圆弧开始端闭合方式（"butt"直线闭合、"round"圆帽闭合、"-round"反圆帽闭合）
      "arc-start-cap": 'butt',
  
      // 圆弧结束端闭合方式，和上一个类似
      "arc-end-cap": 'butt',
  
      // 设置线条虚线，应该是一个数组[number,...]
      "lineDash": [],
  
      // 阴影的模糊系数，默认0，也就是无阴影
      "shadowBlur": 0,
  
      // 阴影的颜色
      "shadowColor": "black"
  
  };
  
  // 文字统一设置方法
  export let initText = function (painter, config, x, y, deg, platform) {
  
      painter.beginPath();
      painter.translate(x, y);
      painter.rotate(deg);
      if (platform != 'default') {
          painter.setFontSize(config['font-size']);
          // font-family目前无视了
      } else {
          painter.font = config['font-size'] + "px " + config['font-family'];
      }
      return painter;
  };
  
  // 画弧统一设置方法
  export let initArc = function (painter, config, cx, cy, r1, r2, beginDeg, deg) {
  
      if (r1 > r2) {
          let temp = r1;
          r1 = r2;
          r2 = temp;
      }
  
      beginDeg = beginDeg % (Math.PI * 2);
  
      // 当|deg|>=2π的时候都认为是一个圆环
      // 为什么不取2π比较，是怕部分浏览器浮点不精确
      if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
          deg = Math.PI * 2;
      } else {
          deg = deg % (Math.PI * 2);
      }
  
      arc(beginDeg, deg, cx, cy, r1, r2, function (
          beginA, endA,
          begInnerX, begInnerY,
          begOuterX, begOuterY,
          endInnerX, endInnerY,
          endOuterX, endOuterY,
          r
      ) {
          if (r < 0) r = -r;
          painter.beginPath();
          painter.moveTo(begInnerX, begInnerY);
          painter.arc(
              // (圆心x，圆心y，半径，开始角度，结束角度，true逆时针/false顺时针)
              cx, cy, r1, beginA, endA, false);
  
          // 结尾
          if (config["arc-end-cap"] == 'round')
              painter.arc((endInnerX + endOuterX) * 0.5, (endInnerY + endOuterY) * 0.5, r, endA - Math.PI, endA, true);
          else if (config["arc-end-cap"] == '-round')
              painter.arc((endInnerX + endOuterX) * 0.5, (endInnerY + endOuterY) * 0.5, r, endA - Math.PI, endA, false);
          else
              painter.lineTo(endOuterX, endOuterY);
  
          painter.arc(cx, cy, r2, endA, beginA, true);
  
          // 开头
          if (config["arc-start-cap"] == 'round')
              painter.arc((begInnerX + begOuterX) * 0.5, (begInnerY + begOuterY) * 0.5, r, beginA, beginA - Math.PI, true);
          else if (config["arc-start-cap"] == '-round')
              painter.arc((begInnerX + begOuterX) * 0.5, (begInnerY + begOuterY) * 0.5, r, beginA, beginA - Math.PI, false);
          else
              painter.lineTo(begInnerX, begInnerY);
  
      });
      if (config["arc-start-cap"] == 'butt') painter.closePath();
      return painter;
  };
  
  // 画圆统一设置方法
  export let initCircle = function (painter, cx, cy, r) {
      painter.beginPath();
      painter.moveTo(cx + r, cy);
      painter.arc(cx, cy, r, 0, Math.PI * 2);
      return painter;
  };
  
  // 画矩形统一设置方法
  export let initRect = function (painter, x, y, width, height) {
      painter.beginPath();
      painter.rect(x, y, width, height);
      return painter;
  };
  