static Point2D calculateEndPoint()

in dashboard/src/main/java/com/google/cloud/tools/opensource/dashboard/PieChart.java [31:43]


  static Point2D calculateEndPoint(double radius, double centerX, double centerY, double ratio) {
    if (ratio > 1) {
      ratio = 1.0;
    }
    
    double radians = ratio * 2 * Math.PI;
    
    // Since we're starting at the top of the circle this is rotated 90 degrees
    // from the normal coordinates. This is why we use sine for x and cosine for y.
    double x = radius * (1 + Math.sin(radians));
    double y = radius * (1 - Math.cos(radians));
    return new Point2D.Double(x + centerX - radius, y + centerY - radius);
  }