Exemple #1
0
  public static boolean isIntersect(Vector A1, Vector A2, Vector B1, Vector B2) {
    Vector A = diff(A1, A2);
    Vector B = diff(B2, B1);

    Vector C = diff(B2, A2);

    double determinant = A.getA() * B.getB() - A.getB() * B.getA();

    double d1 = C.getA() * B.getB() - C.getB() * B.getA();
    double d2 = A.getA() * C.getB() - A.getB() * C.getA();

    if (determinant == 0 && d1 == 0 && d2 == 0) return true;

    if (determinant == 0) return false;

    double k1 = d1 / determinant;
    double k2 = d2 / determinant;

    return k1 >= 0 && k1 <= 1 && k2 >= 0 && k2 <= 1;
  }
Exemple #2
0
 public static double length(Vector vector) {
   return Math.sqrt(vector.getA() * vector.getA() + vector.getB() * vector.getB());
 }
Exemple #3
0
 public static Vector diff(Vector v1, Vector v2) {
   return new Vector(v1.getA() - v2.getA(), v1.getB() - v2.getB());
 }
Exemple #4
0
 public static Vector normal(Vector v) {
   return new Vector(-v.getB(), v.getA());
 }
Exemple #5
0
 public static double vectorProd(Vector v1, Vector v2) {
   return v1.getA() * v2.getB() - v1.getB() * v2.getA();
 }
Exemple #6
0
 public static double scalarProd(Vector v1, Vector v2) {
   return v1.getA() * v2.getA() + v1.getB() * v2.getB();
 }
Exemple #7
0
 public static Vector sum(Vector meToEnemy, Vector me) {
   return new Vector(meToEnemy.getA() + me.getA(), meToEnemy.getB() + me.getB());
 }
Exemple #8
0
 public static Vector prod(Vector vector, double scalar) {
   return new Vector(vector.getA() * scalar, vector.getB() * scalar);
 }
Exemple #9
0
  public static Vector rotate(Vector vector, double angle) {
    double a = vector.getA();
    double b = vector.getB();

    return new Vector(a * cos(angle) - b * sin(angle), a * sin(angle) + b * cos(angle));
  }