// sailors_area.java compile javac -cp . sailors_area.java // execute java -cp . sailors_area // poly_area1 for 2 dimensional, n points of a closed polygon // each point x,y last point goes to first point all stuff // poly_area for 2 dimensional, n points of a closed polygon // each point x,y last point goes to first point optimized // // area 0f volume 3 dimensional, n points for each enclosing surface of volume // each point x,y,z size of array/n is number of surface // volume of 3 dimensional object, n points for each enclosing area // each point x,y,z size of array/n is number of surface // 4D volume for 4 dimensional, // public class sailors_area { public sailors_area() { double tri[][] = {{3.0,1.0},{1.0,1.0},{1.0,3.0}}; double pa4[][] = {{0.0, -1.0}, {1.0, 0.0}, {0.0, 1.0}, {-1.0, 0.0}}; double pa[][] = {{2.0, 3.0}, {4.0, 3.0}, {4.0, 1.0}, {5.0, 1.0}, {5.0, 4.0}, {1.0, 4.0}, {1.0, 1.0}, {3.0, 1.0}, {3.0, 2.0}, {2.0, 2.0}}; double pastar[][] = {{0.00000, 5.00000}, // star {1.12257, 1.54508}, {4.75528, 1.54508}, {1.81636, -0.59017}, {2.93893, -4.04508}, {-0.00000, -1.90983}, {-2.93893, -4.04508}, {-1.81636, -0.59017}, {-4.75528, 1.54508}, {-1.12257, 1.54508}}; double area = 0.0; System.out.println("sailors_area.java running"); System.out.println("test poly_area1 tri"); area = poly_area1(3, tri); System.out.println("poly_area1(3,tri)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area1 pa4"); area = poly_area1(4, pa4); System.out.println("poly_area1(4,pa4)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area1 pa"); area = poly_area1(10, pa); System.out.println("poly_area1(10,pa)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area1 pastar"); area = poly_area1(10, pastar); System.out.println("poly_area1(10,pastar)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area tri"); area = poly_area(3, tri); System.out.println("poly_area(3,tri)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area pa4"); area = poly_area(4, pa4); System.out.println("poly_area(4,pa4)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area pa"); area = poly_area(10, pa); System.out.println("poly_area(10,pa)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test poly_area pastar"); area = poly_area(10, pastar); System.out.println("poly_area(10,pastar)="+area); System.out.println(" "); System.out.println(" "); System.out.println("test area of 3D volume"); System.out.println("test 3D object volume"); System.out.println("test 4D object area"); System.out.println("test 4D object 3D volume"); System.out.println("test 4D object 4D volume"); } // end sailors_area double poly_area1(int n, double pa0[][]) { double area = 0.0; double maxarea = 0.0; int k, len1, len2; // poly_area.c compute area of a closed polygon // sailors algorithm // sum signed areas of trapezoids double x1, y1, x2, y2; // read points double x0=0.0, y0=0.0; // first point for close double dx; // difference x2-x1 double da; double pa[][] = new double[pa0.length][pa0[0].length]; double xmin, xmax, ymin, ymax; System.out.println("poly_area1 len="+n); len1 = pa.length; len2 = pa[0].length; System.out.println("size pa["+len1+"]["+len2+"]"); xmin = pa0[0][0]; xmax = xmin; ymin = pa0[0][1]; ymax = ymin; for(int i=0; i