use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestVector2D method testGetAngle.
/**
* Tests the angle returned by get angle for a variety of vectors
*
* (-10, -10, -3pi/4) (0, -10, -pi/2) (10, -10, -pi/4)
*
* (0, 0, 0) (10, 0, 0)
*
* (-10, 10, 3pi/4) (0, 10, pi/2) (10, 10, pi/4)
*/
@Test
public void testGetAngle() {
// the center
Vector2D vector = new Vector2D(0, 0);
assertEquals(vector.getAngle(), 0, 0.01);
// now going around clockwise from the upper left corner
vector = new Vector2D(-10, -10);
assertEquals(vector.getAngle(), -(3 * Math.PI) / 4, 0.01);
vector = new Vector2D(0, -10);
assertEquals(vector.getAngle(), -Math.PI / 2, 0.01);
vector = new Vector2D(10, -10);
assertEquals(vector.getAngle(), -Math.PI / 4, 0.01);
vector = new Vector2D(10, 0);
assertEquals(vector.getAngle(), 0, 0.01);
vector = new Vector2D(10, 10);
assertEquals(vector.getAngle(), Math.PI / 4, 0.01);
vector = new Vector2D(0, 10);
assertEquals(vector.getAngle(), Math.PI / 2, 0.01);
vector = new Vector2D(-10, 10);
assertEquals(vector.getAngle(), (3 * Math.PI) / 4, 0.01);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestVector2D method testDot.
@Test
public void testDot() {
Vector2D vector1 = new Vector2D(-3, 5);
Vector2D vector2 = new Vector2D(2, 3);
double dot = vector1.dot(vector2);
assertEquals(dot, 9, 0);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestVector2D method testVectorProjectAlongXLine.
@Test
public void testVectorProjectAlongXLine() {
Vector2D vector1 = new Vector2D(10, 0);
Vector2D vector2 = new Vector2D(10, 0);
Vector2D resultVector = vector1.vectorProject(vector2);
assertEquals(resultVector.getXValue(), vector1.getXValue(), 0);
assertEquals(resultVector.getYValue(), vector1.getYValue(), 0);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class AbstractWeapon method shiftWeaponFiringLocation.
/**
* Shift the weapon firing position to be in front of the ship, not hitting it,
* at the appropriate initial speed
*/
public void shiftWeaponFiringLocation(double initialSpeed) {
int radiusToShift = firingShip.getRadius() + radius * 2;
position.setX(position.getX() + (radiusToShift * Math.cos(position.getOrientation())));
position.setY(position.getY() + (radiusToShift * Math.sin(position.getOrientation())));
Vector2D newVelocity = new Vector2D(initialSpeed * Math.cos(position.getOrientation()), initialSpeed * Math.sin(position.getOrientation()));
position.setTranslationalVelocity(newVelocity);
}
Aggregations