Sunday, January 20, 2019

Character Movement 5 (Unit-Length Vectors) - Math for Game Developers

Character Movement 5 (Unit-Length Vectors)

Main Class:

public class Main {
public static void main(String[] args) {
Point p = new Point(3, 4);
Point i = new Point(1, 2);
Vector ip = Vector.subtractPoints(p, i);
Vector unit = Vector.normalized(ip);
System.out.println("Normalized Unit: "+unit);
System.out.println("Normalized length: "+Vector.length(unit));
}
}

Point Class:

public class Point {
private int x, y;

public Point(int x, int y) {
this.x = x;
this.y = y;
}

public int getX() {
return x;
}

public int getY() {
return y;
}
}

Vector Class:


public class Vector {
private double x, y;
public Vector(double d, double e) {

this.x = d;
this.y = e;
}
public static Vector subtractPoints(Point p, Point i) {
return new Vector(p.getX() - i.getX(), p.getY()-i.getY());
}
public static double length(Vector v) {
return Math.sqrt(((v.x *v.x) + (v.y*v.y)));
}
public static Vector normalized(Vector v) {
return new Vector(v.x / length(v), v.y / length(v));
}
@Override
public String toString() {
return x+", "+y;
}
}

No comments:

Post a Comment