rite a library of static methods that performs variousgeometric transforms onpolygons. Mathematically, a polygon is defined by its sequence of vertices (x
0,y0), (x1,y1), (x2,y2), …. In Java, we will represent a polygon by storing thex– andy-coordinates of the vertices in two parallel arrays x[] and y[].
Three useful geometric transforms arescale,translate androtate.
Scale the coordinates of each vertex (x
i
,y
i
) by a factor α.
x
‘
i = αx
i
y
‘
i = αy
i
Translate each vertex (x
i
,y
i
) by a given offset (dx,dy).
x
‘
i =x
i +dx
y
‘
i =y
i +dy
Rotate each vertex (x
i
,y
i
) byθ degrees counterclockwise, around the origin.
x
‘
i =x
i cosθ –y
i sinθ
y
‘
i =y
i cosθ +x
i sinθ
Write a two-dimensional transformation library by implementing the following API:
public class PolygonTransform {
// Returns a new array object that is an exact copy of the given array. // The given array is not mutated.
public static double[] copy(double[] array)
// Scales the polygon by the factor alpha.
public static void scale(double[] x, double[] y, double alpha)
// Translates the polygon by (dx, dy).
public static void translate(double[] x, double[] y, double dx, double dy)
// Rotates the polygon theta degrees counterclockwise, about the origin.public static void rotate(double[] x, double[] y, double theta)
// Tests each of the API methods by directly calling them.
public static void main(String[] args)}