Vector class
This commit is contained in:
@ -5,23 +5,23 @@ import java.awt.geom.Point2D;
|
||||
|
||||
class Node {
|
||||
|
||||
public static final double RADIUS = 10;
|
||||
public static final double RADIUS = 12;
|
||||
|
||||
public static final Color COLOR = Color.WHITE;
|
||||
|
||||
Point2D.Double pos;
|
||||
Vector pos;
|
||||
|
||||
double radius;
|
||||
|
||||
Color color;
|
||||
|
||||
Node(double x, double y) {
|
||||
this.pos = new Point2D.Double(x, y);
|
||||
this.pos = new Vector(x, y);
|
||||
this.radius = RADIUS;
|
||||
this.color = COLOR;
|
||||
}
|
||||
|
||||
boolean inside(double x, double y) {
|
||||
return pos.distance(x, y) <= radius;
|
||||
return pos.dist(x, y) <= radius;
|
||||
}
|
||||
}
|
||||
|
64
src/main/java/de/oshgnacknak/gruphi/Vector.java
Normal file
64
src/main/java/de/oshgnacknak/gruphi/Vector.java
Normal file
@ -0,0 +1,64 @@
|
||||
package de.oshgnacknak.gruphi;
|
||||
|
||||
public class Vector {
|
||||
|
||||
double x, y;
|
||||
|
||||
public Vector(double x, double y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
Vector copy() {
|
||||
return new Vector(x, y);
|
||||
}
|
||||
|
||||
Vector add(Vector v) {
|
||||
x += v.x;
|
||||
y += v.y;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Vector sub(Vector v) {
|
||||
x -= v.x;
|
||||
y -= v.y;
|
||||
return this;
|
||||
}
|
||||
|
||||
Vector mul(double d) {
|
||||
x *= d;
|
||||
y *= d;
|
||||
return this;
|
||||
}
|
||||
|
||||
double dot(Vector v) {
|
||||
return x*v.x + y*v.y;
|
||||
}
|
||||
|
||||
double mag() {
|
||||
return Math.sqrt(dot(this));
|
||||
}
|
||||
|
||||
Vector norm() {
|
||||
return mul(1 / mag());
|
||||
}
|
||||
|
||||
Vector setMag(double mag) {
|
||||
return mul(mag/this.mag());
|
||||
}
|
||||
|
||||
double dist(Vector v) {
|
||||
return dist(v.x, v.y);
|
||||
}
|
||||
|
||||
double dist(double x, double y) {
|
||||
var dx = this.x - x;
|
||||
var dy = this.y - y;
|
||||
return Math.sqrt(dx*dx + dy*dy);
|
||||
}
|
||||
|
||||
|
||||
double angle() {
|
||||
return Math.atan2(y, x);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user