Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

ONLY SOLVE TASK 3 PE1.java contains the following code: package ProgrammingExam1; import java.awt.Color; public class PE1 { public static void main(String[] args) { Draw blankCanvas

ONLY SOLVE TASK 3

image text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribedimage text in transcribed

PE1.java contains the following code:

package ProgrammingExam1;

import java.awt.Color;

public class PE1 {

public static void main(String[] args) {

Draw blankCanvas = new Draw("Programmign Exam 1");

blankCanvas.point(0.7, 0.7);

blankCanvas.circle(0.5, 0.5, 0.5);

blankCanvas.square(0.5, 0.5, 0.4);

blankCanvas.setPenColor(new Color(150, 150, 150));

blankCanvas.line(0.0, 0.5, 1, 0.5);

}

public static String nestedCircle (double x, double y, double radius, double diff, Draw page, String radiusList) {

// your code goes here. Task 1

return "";

}

public static String squares (double x, double y, double halfLength, int order, Draw page) {

// your code goes here. Task 2

return "";

}

public static ArrayList drillPoints(Point p1, Point p2, Point p3, int order, Draw page, ArrayList array) {

// your code goes here. Task 3

return new ArrayList();

}

}

class Point {

double x;

double y;

public Point(double x, double y) {

// your code goes here. Task 0

}

public static Point midpoint(Point p1, Point p2) {

// your code goes here. Task 0

return new Point(0, 0);

}

public String toString() {

return "["+this.x + ", "+ this.y +"]";

}

}

Problem Description: There is a robot on an assembly line whose job is to take a plate of different materials (i.e. metal, plastic, wood, etc.) and drill a number of holes in it at specific (x, y) coordinates, or draw a geometric shapes on the plate. These plates are later used for a variety of applications. As a very simple example, to make a mold for making chocolate boxes, the robot has drawn the following shapes, where the brown, red and cream color shapes are used to place dark, strawberry and chocolate respectively. As a more complex example, the robot is commanded to draw and drill an electronic circuit board to show where resistors, capacitors etc. should be soldered. See the image below that was taken from Wikimedia as an example. In this assignment, you are going to write recursive functions that command this robot to draw different shapes or drill at different coordinates in a plate. How to Draw? First, let's see a couple of examples of how you can draw different shapes. In the starter code, we have provided a complete documentation of how you can draw a point, line, square and circle. Play with these methods by changing their input parameters and see how they work. You can also change the pen color in case it helps you in debugging the code. Please note that we do not execute your main() method to check for the correctness of your code. Instead, we run Junit tests that call your method and check the output. This means you must stick to the format that is provided for you. (i.e. you do not change the input parameters of the method or methods' name etc.) Task 0: This task has no marks but without it, the rest of your code would not work. You should complete class Point, by implementing a constructor that initializes the x and y coordinate of a point. Then you should implement the midpoint () method that returns a Point, which is in the middle of two given points. The coordinates of the middle point should be cut to two decimal points. e.g. 0.38764 should be converted to 0.38. Task 3: For this task, we are going to have nested triangles. The robot wants to drill a hole on the vertices of triangles and draw a line for the horizontal side of the triangles. This method starts with three points, which are the vertices of the largest (the most outer) triangle. A nested triangle is a triangle, whose vertices fall on the midpoints of the sides of the outer triangle. The method gets an integer called order, that specifies how deeply the recursive method should be called. If order = 1, only one horizontal line and three points are drawn, and three points are returned as the coordinates that should be drilled by the robot. Please see the pictures below where nested triangles with different orders are created by the robot. To make it more visible, the points that should be drilled and returned from the method are drawn in black. You don't need to change the color as we only check the return value of the method. Since this method is recursive, it is possible that a drilled point (i.e. a triangle vertex) is computed more than once. The ArrayList that holds the points should not contain any duplicate points. Also, for the ease of testing, we ask you to add point.toString () to the ArrayList. This method can be found in Point class. order 1 (one line and 3 points are drawn). order= 2 (two lines and 6 points are drawn) order= 3 (5 lines and 15 points are drawn) order = 5 Sample Call 1: Point pl = new Point(0.1, 0.1); Point p2 = new Point(0.9, 0.1); Point p3 = new Point(0.5, 0.9); ArrayList points = new ArrayList(); points = PE1.drill Points (p1, p2, p3, 1, blankCanvas, points); Corresponding Output: [0.1, 0.1)[0.9, 0.1] (0.5, 0.9] Sample Call 2: Point pl = new Point(0.1, 0.1); Point p2 = new Point(0.9, 0.1); Point p3 = new Point(0.5, 0.9); ArrayList points = new ArrayList(); points = PE1.drill Points (pl, P2, P3, 2, blankCanvas, points); Corresponding Output: [0.1, 0.1][0.5, 0.1] [0.3, 0.5][0.9, 0.1] (0.7, 0.5][0.5, 0.9] Marking Scheme: [40 points]: for the correctness of the method. Please note that you will not receive any points if your function is not recursive. Also, make sure that you test your code thoroughly, as we have only provided a subset of the test cases by which we test your code. (5 points]: for inner documentation. Problem Description: There is a robot on an assembly line whose job is to take a plate of different materials (i.e. metal, plastic, wood, etc.) and drill a number of holes in it at specific (x, y) coordinates, or draw a geometric shapes on the plate. These plates are later used for a variety of applications. As a very simple example, to make a mold for making chocolate boxes, the robot has drawn the following shapes, where the brown, red and cream color shapes are used to place dark, strawberry and chocolate respectively. As a more complex example, the robot is commanded to draw and drill an electronic circuit board to show where resistors, capacitors etc. should be soldered. See the image below that was taken from Wikimedia as an example. In this assignment, you are going to write recursive functions that command this robot to draw different shapes or drill at different coordinates in a plate. How to Draw? First, let's see a couple of examples of how you can draw different shapes. In the starter code, we have provided a complete documentation of how you can draw a point, line, square and circle. Play with these methods by changing their input parameters and see how they work. You can also change the pen color in case it helps you in debugging the code. Please note that we do not execute your main() method to check for the correctness of your code. Instead, we run Junit tests that call your method and check the output. This means you must stick to the format that is provided for you. (i.e. you do not change the input parameters of the method or methods' name etc.) Task 0: This task has no marks but without it, the rest of your code would not work. You should complete class Point, by implementing a constructor that initializes the x and y coordinate of a point. Then you should implement the midpoint () method that returns a Point, which is in the middle of two given points. The coordinates of the middle point should be cut to two decimal points. e.g. 0.38764 should be converted to 0.38. Task 3: For this task, we are going to have nested triangles. The robot wants to drill a hole on the vertices of triangles and draw a line for the horizontal side of the triangles. This method starts with three points, which are the vertices of the largest (the most outer) triangle. A nested triangle is a triangle, whose vertices fall on the midpoints of the sides of the outer triangle. The method gets an integer called order, that specifies how deeply the recursive method should be called. If order = 1, only one horizontal line and three points are drawn, and three points are returned as the coordinates that should be drilled by the robot. Please see the pictures below where nested triangles with different orders are created by the robot. To make it more visible, the points that should be drilled and returned from the method are drawn in black. You don't need to change the color as we only check the return value of the method. Since this method is recursive, it is possible that a drilled point (i.e. a triangle vertex) is computed more than once. The ArrayList that holds the points should not contain any duplicate points. Also, for the ease of testing, we ask you to add point.toString () to the ArrayList. This method can be found in Point class. order 1 (one line and 3 points are drawn). order= 2 (two lines and 6 points are drawn) order= 3 (5 lines and 15 points are drawn) order = 5 Sample Call 1: Point pl = new Point(0.1, 0.1); Point p2 = new Point(0.9, 0.1); Point p3 = new Point(0.5, 0.9); ArrayList points = new ArrayList(); points = PE1.drill Points (p1, p2, p3, 1, blankCanvas, points); Corresponding Output: [0.1, 0.1)[0.9, 0.1] (0.5, 0.9] Sample Call 2: Point pl = new Point(0.1, 0.1); Point p2 = new Point(0.9, 0.1); Point p3 = new Point(0.5, 0.9); ArrayList points = new ArrayList(); points = PE1.drill Points (pl, P2, P3, 2, blankCanvas, points); Corresponding Output: [0.1, 0.1][0.5, 0.1] [0.3, 0.5][0.9, 0.1] (0.7, 0.5][0.5, 0.9] Marking Scheme: [40 points]: for the correctness of the method. Please note that you will not receive any points if your function is not recursive. Also, make sure that you test your code thoroughly, as we have only provided a subset of the test cases by which we test your code. (5 points]: for inner documentation

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

2. What potential barriers would you encourage Samuel to avoid?

Answered: 1 week ago