rite a library of static methods that performs various geometric transforms on polygons. Mathematically, a polygon is defined by its sequence of vertices (x0, y 0), (x 1, y 1), (x 2, y 2), …. In Java, we will represent a polygon by storing the x– and y-coordinates of the vertices in two parallel arrays x[] and y[]. Three useful geometric transforms are scale, translate and rotate. Scale the coordinates of each vertex (x i, y i) by a factor α. x‘i = α xi y‘i = α yi Translate each vertex (x i, y i) by a given offset (dx, dy). x‘i = xi + dx y‘i = yi + dy Rotate each vertex (x i, y i) by θ degrees counterclockwise, around the origin. x‘i = xi cos θ – yi sin θ y‘i = yi cos θ + xi 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) }
rite a library of static methods that performs various geometric transforms on polygons. Mathematically, a polygon is defined by its sequence of vertices (x0, y 0), (x 1, y 1), (x 2, y 2), …. In Java, we will represent a polygon by storing the x– and y-coordinates of the vertices in two parallel arrays x[] and y[].
Three useful geometric transforms are scale, translate and rotate.
-
- Scale the coordinates of each vertex (x i, y i) by a factor α.
- x‘i = α xi
- y‘i = α yi
- Translate each vertex (x i, y i) by a given offset (dx, dy).
- x‘i = xi + dx
- y‘i = yi + dy
- Rotate each vertex (x i, y i) by θ degrees counterclockwise, around the origin.
- x‘i = xi cos θ – yi sin θ
- y‘i = yi cos θ + xi 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) }
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 3 images