nStarPath method

Path nStarPath(
  1. int num,
  2. double R,
  3. double r, {
  4. dynamic dx = 0,
  5. dynamic dy = 0,
})

Implementation

Path nStarPath(int num, double R, double r, {dx = 0, dy = 0}) {
  _path.reset();//重置路径
  double perRad = 2 * pi / num;//每份的角度
  double radA = perRad / 2 / 2;//a角
  double radB = 2 * pi / (num - 1) / 2 - radA / 2 + radA;//起始b角
  _path.moveTo(cos(radA) * R + dx, -sin(radA) * R + dy);//移动到起点
  for (int i = 0; i < num; i++) {//循环生成点,路径连至
    _path.lineTo(cos(radA + perRad * i) * R + dx, -sin(radA + perRad * i) * R + dy);
    _path.lineTo(cos(radB + perRad * i) * r + dx, -sin(radB + perRad * i) * r + dy);
  }
  _path.close();
  return _path;
}