Java 程序求圆弧段的面积(Program to find area of a Circular Segment)

在圆中,如果画一条弦,那么这条弦将整个圆分成两部分。圆的这两部分称为圆的段。较小的区域称为小段,较大的区域称为大段。

在下图中,弦 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 扇形的面积:Javascript 扇形的面积(Area of a Circular Sector)-CSDN博客

PHP 扇形的面积:PHP 扇形的面积(Area of a Circular Sector)-CSDN博客

C# 扇形的面积:C# 扇形的面积(Area of a Circular Sector)-CSDN博客

Python 扇形的面积:Python 扇形的面积(Area of a Circular Sector)-CSDN博客

Java 扇形的面积:Java 扇形的面积(Area of a Circular Sector)-CSDN博客

C++ 扇形的面积:C++ 扇形的面积(Area of a Circular Sector)-CSDN博客

在上图中,假设扇区形成的角度 = 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(角度)

示例代码:

// Java Program to find area of

// segment of a circle

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(String[] args)

{

float radius = 10.0f, angle = 90.0f;

System.out.println("Area of minor segment = " +

area_of_segment(radius, angle));

System.out.println("Area of major segment = " +

area_of_segment(radius, (360 - angle)));

}

}

// This code is contributed by Anant Agarwal.

输出 :

小段面积 = 28.5397

大段面积 = 285.619

时间复杂度: O(1)

辅助空间: O(1)

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

相关推荐
越来越无动于衷9 分钟前
Tomcat本地部署Maven Java Web项目
java·tomcat·maven
YuTaoShao31 分钟前
Java八股文——计算机网络「网络攻击篇」
java·开发语言·计算机网络
蔡蓝33 分钟前
设计模式-桥接模式
java·设计模式·桥接模式
bubiyoushang88840 分钟前
Kotlin中快速实现MVI架构
android·开发语言·kotlin
干净的坏蛋1 小时前
Spring 的IoC 和 AOP
java·spring·rpc
悟能不能悟1 小时前
Linux 系统中,查询 JDK 的安装目录
java·linux·python
我崽不熬夜1 小时前
为什么Java中的设计模式会让你的代码更优雅?
java·后端·设计模式
一入JAVA毁终身2 小时前
多线程八股
java
在未来等你2 小时前
Java企业技术趋势分析:AI驱动下的Spring AI、LangChain4j与RAG系统架构
java·spring·ai·编程·技术
DBWYX2 小时前
PHP is the best language.
开发语言·php