I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com
COST (GBP)
this unit 2.00
sub units 0.00
+
0
MathsGeometryArea

circle

Computes the area of the circular segment within a circle tangent to a reference line.
Controller: CodeCogs

add cart

Interface

C++

Circle

 
doublecircledoubler
doubleh )[inline]
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}

1/circle_1-746.jpg
+

We notice that

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}

1/circle_3-746.jpg
+

Purchase a Licence for more information.

4) h \geq 2r \Rightarrow S = \mathcal{A}_{\mathcal{C}}

Because \mathcal{A}_{\mathcal{C}} = \pi r^2, the solution is:

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.635

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 lenghts 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, 
  Geometry::Area::circle(r, h));
 
  return 0;
}

Parameters

rthe radius of the circle
hthe distance between line d and the reference line

Returns

The value of the desired area.
Source Code

Source code is available when you buy a Commercial licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.