code: function getWaterWavePositions(x, stage, waveLength, amplitude) {
    if (stage === 0) {
      return [[x + 1 / 2 * waveLength / Math.PI / 2, amplitude / 2], [x + 1 / 2 * waveLength / Math.PI, amplitude], [x + waveLength / 4, amplitude]];
    } else if (stage === 1) {
      return [[x + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 2), amplitude], [x + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 1), amplitude / 2], [x + waveLength / 4, 0]];
    } else if (stage === 2) {
      return [[x + 1 / 2 * waveLength / Math.PI / 2, -amplitude / 2], [x + 1 / 2 * waveLength / Math.PI, -amplitude], [x + waveLength / 4, -amplitude]];
    }
    return [[x + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 2), -amplitude], [x + 1 / 2 * waveLength / Math.PI / 2 * (Math.PI - 1), -amplitude / 2], [x + waveLength / 4, 0]];
  }
docs: 水波图 
  用贝塞尔曲线模拟正弦波
  Using Bezier curves to fit sine wave.
  There is 4 control points for each curve of wave,
  which is at 1/4 wave length of the sine wave.
  
  The control points for a wave from (a) to (d) are a-b-c-d:
  c *----* d
  b *
  |
  ... a * ..................
  
  whose positions are a: (0, 0), b: (0.5, 0.5), c: (1, 1), d: (PI / 2, 1)
  
  @param {number} x          x position of the left-most point (a)
  @param {number} stage      0-3, stating which part of the wave it is
  @param {number} waveLength wave length of the sine wave
  @param {number} amplitude  wave amplitude
  @return {Array} 正弦片段曲线