Skip to content
Snippets Groups Projects
Point.java 2.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • Teo Blaise Kaplanski's avatar
    Teo Blaise Kaplanski committed
    /**
     * Created by Arnaud Labourel on 20/09/2018.
     */
    import tp2.lib.Painter;
    
    import java.awt.*;
    
    public class Point {
        public final double x;
        public final double y;
    
        public Point(double x, double y) {
        	this.y = y;
        	this.x = x;
    	// Add code here
        }
    
        void draw(Painter painter, Color color){
            // Add code here
        	painter.addPoint(this.x, this.y, color);
        }
    
        void drawLine(Point p, Painter painter, Color color){
        	painter.addLine(this.x, this.y, p.x, p.y, color);
            // Add code here
        }
        
        Point translate(double dx, double dy) {
        	return new Point(this.x+dx, this.y+dy);
        }
        
        Point rotate(double angle) {
        	double a = (Math.PI * angle)/180;
        	
        	double xr = (this.x*Math.cos(a)) - (this.y*Math.sin(a));
            double yr = (this.x*Math.sin(a)) + (this.y*Math.cos(a));
            
    
        	return new Point(xr,yr);
        }
        
        public double distance (Point point){
            return (Math.sqrt( Math.pow(this.x-point.x, 2) + Math.pow((this.y-point.y), 2) ));
        }
    
    
    public static void test1_Point(Painter painter){
            Point p1 = new Point(100,100);
            Point p2 = new Point(300,100);
            Point p3 = new Point(300,300);
            Point p4 = new Point(100,300);
            p1.drawLine(p2, painter, Color.black);
            p2.drawLine(p3, painter, Color.black);
            p3.drawLine(p4, painter, Color.black);
            p4.drawLine(p1, painter, Color.black);
            p1.draw(painter, Color.red);
            p2.draw(painter, Color.red);
            p3.draw(painter, Color.red);
            p4.draw(painter, Color.red);
    }
    
    public static void test2_Point(Painter painter){
        Point p1 = new Point(100,100);
        Point p2 = p1.translate(200, 0);
        Point p3 = p2.translate(0, 200);
        Point p4 = p3.translate(-200,0);
        p1.drawLine(p2, painter, Color.black);
        p2.drawLine(p3, painter, Color.black);
        p3.drawLine(p4, painter, Color.black);
        p4.drawLine(p1, painter, Color.black);
        p1.draw(painter, Color.red);
        p2.draw(painter, Color.red);
        p3.draw(painter, Color.red);
        p4.draw(painter, Color.red);
    }
    
    }