Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

creating a rectangle from 2 specific points

I am trying to create a rectangle in Java but only with awt package classes.

I can only click two points and the program must calculate the width and height and draw a rectangle between those exact two points.

The following doesn't work for me:

package ie.iact.shapes;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;

public class Rect extends Shapes {``

    private Point secondPoint;

    public Rect(Point f, Point s) {
        setFirstPoint(f);
        setSecondPoint(s);

    }

    @Override
    public void draw(Graphics g) {
        int x1 = firstPoint.x;
        int y1 = firstPoint.y;
        int x2 = secondPoint.x;
        int y2 = secondPoint.y;
        int a;
        int b;
        if (x1 < x2) {
            a = x1;
        } else {
            a = x2;
        }
        if (y1 < y2) {
            b = y1;
        } else {
            b = y2;
        }
        int width = secondPoint.x - a;
        int hight = secondPoint.y - b;
        g.drawRect(getFirstPoint().x, getFirstPoint().y, secondPoint.x, secondPoint.y);

    }

    public Point getSecondPoint() {
        return secondPoint;
    }

    public void setSecondPoint(Point secondPoint) {
        this.secondPoint = secondPoint;
    }
}
like image 743
Sean Connell Avatar asked May 15 '13 11:05

Sean Connell


People also ask

What is a 2 point rectangle?

2-Point RectangleThe 2 points are opposite corners of the rectangle. You click to place the first corner point, then click to place the second corner point. Alternatively, you can specify the width and height values.


1 Answers

Rectangle class can already handle all of your calculations:

Rectangle rect= new Rectangle(point1);
rect.add(point2);

g.fillRect(rect.x, rect.y, rect.width, rect.height);
like image 52
serg.nechaev Avatar answered Sep 29 '22 14:09

serg.nechaev