FUNCTION
circle
Computes the area of the circular segment within a circle tangent to a reference line.
Interface
#include <codecogs/maths/geometry/area/circle.h>
using namespace Maths::Geometry::Area;
This module computes the area of the circular segment formed between a circle tangent to a reference line and a line found at a given distance from this reference line.
The various cases are described by the images given in the following documentation, where the area which we want to compute is that of the filled shape.
Solution
Consider an orthogonal coordinate system and $\mathcal{C}(O, r)$ a circle so that there exists $P \in \mathcal{C}(O, r)$ with $P$ on the x-axis. Also let $d$ be parallel to the x-axis so that the distance from it to the x-axis is $h \in \mathbb{R}_+$ and $d \cap \mathcal{C} = \{A, B\}$.
Let $S$ be the area which we must determine. Based on the relation between $h$ and $r$ we get the following cases:
1) $h<r \Rightarrow S = \mathcal{A}_{APB}$

2) $h = r \Rightarrow S = \mathcal{A}_{\mathcal C} /2$
Because $\mathcal{A}_{\mathcal C} = \pi r^2$, we find the solution:
3) $r<h<2r \Rightarrow S = \mathcal{A}_{APB}$

4) $h \geq 2r \Rightarrow S = \mathcal{A}_{\mathcal{C}}$
Because $\mathcal{A}_{\mathcal{C}} = \pi r^2$, the solution is:
Example 1
#include <codecogs/maths/geometry/area/circle.h>
#include <stdio.h>
int main()
{
// the length of the radius
double r = 2.5;
// display the length of the radius
printf("r = %.1lf\n\n", r);
// display the area for different values of h
for (double h = 0; h < 5.6; h += 0.5)
printf("h = %.1lf Area = %.3lf\n", h,
Maths::Geometry::Area::circle(r, h));
return 0;
}Output:
r = 2.5
h = 0.0 Area = 0.000
h = 0.5 Area = 1.022
h = 1.0 Area = 2.796
h = 1.5 Area = 4.954
h = 2.0 Area = 7.334
h = 2.5 Area = 9.817
h = 3.0 Area = 12.301
h = 3.5 Area = 14.681
h = 4.0 Area = 16.839
h = 4.5 Area = 18.613
h = 5.0 Area = 19.635
h = 5.5 Area = 19.635Parameters
Returns
Interactive Calculator
Computing…
Set a range above first to export a graph.