您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 衡阳分类信息网,免费分类信息发布

在Java中使用更高效的算法来计算多边形的面积

2024/2/29 1:44:12发布14次查看
“多边形”一词源自希腊语“poly”,意思是“许多”,“gon”意思是“角度”。多边形是由三条或三条以上直线连接而成的二维闭合平面形状。例如三角形、四边形、六边形等。
尽管在本文中求多边形面积的方法有很多种,但我们将使用 slicker 算法来实现此目的。
查找多边形面积的更灵活算法slicker 算法有两个事实你必须知道,首先,根据数学约定,y 方向向上的点总是正值。其次,根据计算机系统,y方向指向下方且始终为正。该算法通过使用正 y 向下坐标逆时针列出顶点,提供了有效的解决方案。它将抵消这两个事实,从而产生积极的区域。
现在我们来讨论一个实现slicker算法的java程序。
算法第 1 步 - 创建一个类“slicker”及其两个内部类“coordinates”和“poly”。
第 2 步 - 声明并初始化常量“maximum”以限制多边形的边数。
第 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: 4enter c1 and c2 coordinates: 2 33 55 88 2the area of given polygon: 17.0
结论任何平面形状都不能被视为多边形,例如圆形,尽管它是一个封闭的平面形状,但没有任何边。所以我们不能称它为多边形。在本文中,我们创建了一个 java 程序来使用 slicker 算法计算多边形的面积。
以上就是在java中使用更高效的算法来计算多边形的面积的详细内容。
衡阳分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录