
“多边形”一词源自希腊语“Poly”,意思是“许多”,“gon”意思是“角度”。多边形是由三条或三条以上直线连接而成的二维闭合平面形状。例如三角形、四边形、六边形等。
尽管在本文中求多边形面积的方法有很多种,但我们将使用 slicker 算法来实现此目的。
有两个事实你必须知道,首先,根据数学约定,y 方向向上的点总是正值。其次,根据计算机系统,y方向指向下方且始终为正。该算法通过使用正 y 向下坐标逆时针列出顶点,提供了有效的解决方案。它将抵消这两个事实,从而产生积极的区域。
现在我们来讨论一个实现slicker算法的java程序。
立即学习“Java免费学习笔记(深入)”;
第 1 步 - 创建一个类“Slicker”及其两个内部类“Coordinates”和“Poly”。
第 2 步 - 声明并初始化常量“MAXIMUM”以限制多边形的边数。
本文档主要讲述的是fortran语言语法;FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
第 3 步 - 在内部类“Poly”内创建类“坐标”的对象数组。然后,创建“Poly”类的构造函数以将坐标存储在该对象数组中。
步骤 4 - 进一步定义方法“calcAr”以及参数“cr”。在这个方法中,我们将创建一个 for 循环,它将运行到多边形的边数并计算面积。
第 5 步 - 现在在 main 方法中,创建一个“Poly”类的对象“cr”。然后,我们将由用户获取多边形的边数和坐标。
第 6 步 - 最后,我们将调用方法“calcAr”并使用 if-else 块检查面积是正数还是负数。如果为正,则执行“if”块语句,否则执行 else 块。
import java.util.*;
public class Slicker {
// to signify maximum number of sides of polygon
static final int MAXIMUM = 50;
static class Coordinates {
double c1, c2;
// declaring coordinates
}
static class Poly {
// Array object of class Coordinates
Coordinates cr[] = new Coordinates[MAXIMUM];
int sides;
Poly()
// constructor
{
// to accept input of coordinates
for (int i = 0; i < MAXIMUM; i++)
cr[i] = new Coordinates();
}
}
// method to calculate area
static double caclAr(Poly cr) {
double res = 0;
for (int i = 0; i < cr.sides; i++) {
int j = (i + 1) % cr.sides;
res += (cr.cr[i].c1 * cr.cr[j].c2)
- (cr.cr[j].c1 * cr.cr[i].c2);
}
return res / 2;
}
static public void main(String[] args)
{
Poly cr = new Poly();
// object of class 'Poly'
// Object of scanner class for User inputs
Scanner in = new Scanner(System.in);
System.out.print("Enter total number of sides: ");
cr.sides = in.nextInt();
// to take coordinates from user
System.out.println("Enter c1 and c2 coordinates: ");
for (int i = 0; i < cr.sides; i++) {
cr.cr[i].c1 = in.nextDouble();
cr.cr[i].c2 = in.nextDouble();
}
// calling user defined method
double caclAr = caclAr(cr);
if (caclAr > 0) {
System.out.print("The area of given Polygon: " + caclAr);
} else {
System.out.print("The area of given Polygon: " + (caclAr * -1));
}
}
}
Enter total number of sides: 4 Enter c1 and c2 coordinates: 2 3 3 5 5 8 8 2 The area of given Polygon: 17.0
任何平面形状都不能被视为多边形,例如圆形,尽管它是一个封闭的平面形状,但没有任何边。所以我们不能称它为多边形。在本文中,我们创建了一个 java 程序来使用 slicker 算法计算多边形的面积。
以上就是在Java中使用更高效的算法来计算多边形的面积的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号