|
- /**
- * @file Vector.java
- * @brief
- * File containing the Vector class, a helper class for the
- * vector based evaluation system
- *
- * @author Christos Choutouridis 8997 cchoutou@ece.auth.gr
- * @author Konstantina Tsechelidou 8445 konstsec@ece.auth.gr
- */
-
- package gr.auth.ee.dsproject.node;
-
- /**
- * @class Vector
- * @brief
- * A helper class to represent vectors in the Maze
- */
- public class Vector {
- public int x, y; // the coordinate alternative to vector representation
-
- /**
- * @brief the plain constructor makes a zero vector
- */
- public Vector () {
- x = y = 0;
- }
-
- /**
- * @brief
- * Makes a vector from x,y coordinates of two points in Maze
- * @param p1x Point 1 x coordinate
- * @param p1y Point 1 y coordinate
- * @param p2x Point 2 x coordinate
- * @param p2y Point 2 y coordinate
- */
- public Vector (int p1x, int p1y, int p2x, int p2y) {
- x = p2x - p1x;
- y = p2y - p1y;
- }
-
- /*
- * ========== setters =========
- */
- public int setX (int x) { return (this.x = x); } // set x
- public int setY (int y) { return (this.y = y); } // set y
-
- /**
- * @brief
- * The Euclidean norm of the vector
- * @return the norm
- */
- public double norm () {
- return Math.sqrt (x*x + y*y);
- }
-
- /**
- * @brief
- * The dot product of the vector with another vector
- * @param a The 2nd vector of the product
- * @return the dot product value
- */
- public double dot (Vector a) {
- return (a.x*this.x + a.y*this.y);
- }
-
- /**
- * @brief
- * A static version of dot product of 2 vectors
- * @param a Vector a
- * @param b Vector b
- * @return The dot product of a and b
- */
- public static double dot (Vector a, Vector b) {
- return (a.x*b.x + a.y*b.y);
- }
- }
|