/** * MyPoint2D * Rappresenta un punto nel piano * * @author A. Luchetta * @version 5-Nov-2007 */ import java.util.Locale; public class MyPoint2D { private double x; // ascissa private double y; // ordinata /** * Inizializza un punto * @param px ascissa * @param py ordinata */ public MyPoint2D(double px, double py) { x = px; y = py; } /** * Trasla questo punto * @param dx traslazione lungo l'asse x * @param dy traslazione lungo l'asse y * @return un nuovo punto traslato rispetto a questo punto */ public MyPoint2D translate(double dx, double dy) { return new MyPoint2D(x + dx, y + dy); } /** * Ruota questo punto con centro di rotazione nell'origine degli assi * @param alpha angolo di rotazione * @return un nuovo punto ruotato rispetto a questo punto */ public MyPoint2D rotate(double alpha) { double qx = x * Math.cos(alpha) - y * Math.sin(alpha); double qy = x * Math.sin(alpha) + y * Math.cos(alpha); return new MyPoint2D(qx, qy); } /** * Descrizione testuale di questo punto nella forma P(x, y). Le coordinate x e y sono espresse con due cifre decimale. * @return la descrizione testuale di questo punto */ public String toString() { return String.format(Locale.US, "P(%.2f, %.2f)", x, y); } }