在圆中,如果画一条弦,那么这条弦将整个圆分成两部分。圆的这两部分称为圆的段。较小的区域称为小段,较大的区域称为大段。
在下图中,弦 AB 将圆分成小段和大段。
已知圆的半径和构成小线段的角度。我们需要求出两个线段的面积。
示例:
输入:
半径 = 21.0
角度 = 120.0
输出:
小段面积 270.855
大段面积 1114.59
输入:
半径 = 10.0
角度 = 90.0
输出:
小段面积 28.5397
大段面积 285.619
片段面积:
为此,我们将弦的端点与圆心连接起来,形成一个扇形,该扇形在中心处对着某个“角度”。并从弦 AB 上的圆心画一条垂线。根据三角形全等,我们得到 ? AOP = ? BOP = 1/2(角度)。
线段面积公式:
线段面积 = 扇形面积 - 三角形 OAB 面积
= pi * r 2 * (角度/360) -
三角形 OAB 面积
有关扇区面积公式的详细信息,请参阅:
Javascript 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147072171
PHP 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147072144
C# 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147072101
Python 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147072058
Java 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147071989
C++ 扇形的面积:https://blog.csdn.net/hefeng_aspnet/article/details/147071749
在上图中,假设扇区形成的角度 = X,
因此? AOP = ? BOP = X/2
三角形 AOB 的面积= 1/2 * 底边 * 高
= 1/2 * AB * OP
现在在三角形 AOP 中,根据三角学
Cos(X/2) = OP/AO 即 OP = AO * Cos(X/2)
OP = r * Cos(X/2)
Sin(X/2) = AP/AO 即 AP = AO * Sin(X/2)
AP = r * Sin(X/2)
所以,底边= AB = AP + PB
= 2 * AP
= 2 * r * Sin(X/2)高= OP = r * Cos(X/2)三角形面积= 1/2 * (2 * r * Sin(X/2)) * (r * Cos(X/2))
= 1/2 * r 2 * Sin(X)
[使用恒等式 2 * Sin(A) * Cos(A)]
= Sin(2 * A))
因此线段面积= pi * r 2 * (角度/360) - 1/2 * r 2 * Sin(角度)
示例代码:
// C# Program to find area
// of segment of a circle
using System;
class GFG {
static float pi = 3.14159f;
static float area_of_segment(float radius,
float angle)
{
// Calculating area of sector
float area_of_sector = pi * (radius * radius)
* (angle / 360);
// Calculating area of triangle
float area_of_triangle =(float)1 / 2 * (radius * radius)
*(float)Math.Sin((angle * pi) / 180);
return area_of_sector - area_of_triangle;
}
// Driver Function
public static void Main()
{
float radius = 10.0f, angle = 90.0f;
Console.WriteLine("Area of minor segment = " +
area_of_segment(radius, angle));
Console.WriteLine("Area of major segment = " +
area_of_segment(radius, (360 - angle)));
}
}
// This code is contributed by vt_m.
输出 :
小段面积 = 28.5397
大段面积 = 285.619
时间复杂度: O(1)
辅助空间: O(1)
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。