You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.3 KiB

Jart

Instructions

The purpose of this exercise is to create an image like the example below:

example

You will need to do the following:

  • Copy the code in the usage to your Main.java

You'll define the logic for creating and working with shapes in the geometrical_shapes package. Create the following interfaces:

  • Drawable which contains the methods draw and getColor.

  • Displayable which contains the methods display and save.

Define them according to the way they are called in the Main.java function.

In order to compile and run Main.java, you'll need to define some classes. You are free to implement all the shapes with whatever internal structure you see fit, but you must provide a constructor for all the shapes, which will be described below:

  • Point: a new point should be created from two int values.
  • Line: a new line should be created from references to two different points.
  • Triangle: a new triangle should be created from references to three different points.
  • Rectangle: a new rectangle should be created from references to two different points.
  • Circle: a new circle should be created from a reference to a point representing the center, and an int value representing the circle's radius.

You'll also need to create the random method for Line, Point, and Circle. You should derive their signatures from the usage.

Bonus

You may optionally implement the following shapes, including the classes and interfaces needed to draw them:

  • Pentagon
  • Cube

Usage

interface Displayable {
    void display(int x, int y, Color color);
    void save(String string);
}

interface Drawable {
    void draw(Displayable displayable);
    Color getColor();
}

public class Main {
    public static void main(String[] args) {
        Image image = new Image(1000, 1000);
        Rectangle rectangle = new Rectangle(new Point(50, 50), new Point(300, 200));
        rectangle.draw(image);
        Triangle triangle = new Triangle(new Point(100, 100), new Point(900, 900), new Point(100, 900));
        triangle.draw(image);

        for (int i = 0; i < 50; i++) {
            Circle circle = Circle.random(image.getWidth(), image.getHeight());
            circle.draw(image);
        }
        image.save("image.png");
    }
}

Notions