code: public static boolean intersectLineCircle(float a, float b, float c, float centerX, float centerY, float radius, Vector3f intersectionCenterAndHL) {
          float invDenom = 1.0f / (float) Math.sqrt(a * a + b * b);
          float dist = (a * centerX + b * centerY + c) * invDenom;
          if (-radius <= dist && dist <= radius) {
              intersectionCenterAndHL.x = centerX + dist * a * invDenom;
              intersectionCenterAndHL.y = centerY + dist * b * invDenom;
              intersectionCenterAndHL.z = (float) Math.sqrt(radius * radius - dist * dist);
              return true;
          }
          return false;
      }
docs: Test whether the line with the general line equation <i>a*x + b*y + c = 0</i> intersects the circle with center
  <code>(centerX, centerY)</code> and <code>radius</code>, and store the center of the line segment of
  intersection in the <code>(x, y)</code> components of the supplied vector and the half-length of that line segment in the z component.
  <p>
  Reference: <a href="http://math.stackexchange.com/questions/943383/determine-circle-of-intersection-of-plane-and-sphere">http://math.stackexchange.com</a>
  
  @param a
  the x factor in the line equation
  @param b
  the y factor in the line equation
  @param c
  the constant in the line equation
  @param centerX
  the x coordinate of the circle's center
  @param centerY
  the y coordinate of the circle's center
  @param radius
  the radius of the circle
  @param intersectionCenterAndHL
  will hold the center of the line segment of intersection in the <code>(x, y)</code> components and the half-length in the z component
  @return <code>true</code> iff the line intersects the circle; <code>false</code> otherwise