Skip to content

Commit a03b73a

Browse files
committed
responded to comments
1 parent 5952d3e commit a03b73a

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

content/geometry/CircleCircleArea.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010
template<class P>
1111
double circleCircleArea(P c, double cr, P d, double dr) {
12-
if (cr < dr) swap(c, d), swap(cr, dr);
13-
auto A = [&](double r, double h) {
14-
return r*r*acos(h/r)-h*sqrt(r*r-h*h);
15-
};
16-
auto l = (c - d).dist(), a = (l*l + cr*cr - dr*dr)/(2*l);
17-
if (sgn(l - cr - dr) >= 0) return 0; // far away
18-
if (sgn(l - cr + dr) <= 0) return M_PI*dr*dr;
19-
if (sgn(l - cr) >= 0) return A(cr, a) + A(dr, l-a);
20-
else return A(cr, a) + M_PI*dr*dr - A(dr, a-l);
12+
if (cr < dr) swap(c, d), swap(cr, dr);
13+
auto A = [&](double r, double h) {
14+
return r*r*acos(h/r)-h*sqrt(r*r-h*h);
15+
};
16+
auto l = (c - d).dist(), a = (l*l + cr*cr - dr*dr)/(2*l);
17+
if (l - cr - dr >= 0) return 0; // far away
18+
if (l - cr + dr <= 0) return M_PI*dr*dr;
19+
if (l - cr >= 0) return A(cr, a) + A(dr, l-a);
20+
else return A(cr, a) + M_PI*dr*dr - A(dr, a-l);
2121
}

0 commit comments

Comments
 (0)