public void Normalization_values() { var v = Toople.Vector(1f, 2f, 3f); var sqrt = MathF.Sqrt(14f); v.Normalize().Should().BeEquivalentTo( Toople.Vector(1f / sqrt, 2f / sqrt, 3f / sqrt)); }
public void CrossProduct() { var a = Toople.Vector(1f, 2f, 3f); var b = Toople.Vector(2f, 3f, 4f); a.Cross(b).Should().BeEquivalentTo(Toople.Vector(-1f, 2f, -1f)); b.Cross(a).Should().BeEquivalentTo(Toople.Vector(1f, -2f, 1f)); }
public void AddingTuples() { var point = Toople.Point(3f, -2f, 5f); var vector = Toople.Vector(-2f, 3f, 1f); var result = point + vector; result.Should().BeEquivalentTo(new Toople(1f, 1f, 6f, 1f)); }
public void DotProduct() { var a = Toople.Vector(1f, 2f, 3f); var b = Toople.Vector(2f, 3f, 4f); var result = a.Dot(b); result.Should().BeApproximately(20, float.Epsilon); }
public void Subtracting_fromZeroVector() { var zero = Toople.Vector(0, 0, 0); var v = Toople.Vector(1f, -2f, 3f); var result = zero - v; result.Should().BeEquivalentTo(Toople.Vector(-1f, 2f, -3f)); }
public void Subtracting_twoVectors() { var vectorA = Toople.Vector(3f, 2f, 1f); var vectorB = Toople.Vector(5f, 6f, 7f); var result = vectorA - vectorB; result.Should().BeEquivalentTo(Toople.Vector(-2f, -4f, -6f)); }
public void Subtracting_vectorFromPoint() { var point = Toople.Point(3f, 2f, 1f); var vector = Toople.Vector(5f, 6f, 7f); var result = point - vector; result.Should().BeEquivalentTo(Toople.Point(-2f, -4f, -6f)); }
public void Subtracting_twoPoints() { var pointA = Toople.Point(3f, 2f, 1f); var pointB = Toople.Point(5f, 6f, 7f); var result = pointA - pointB; result.Should().BeEquivalentTo(Toople.Vector(-2f, -4f, -6f)); }
public void EqualsWorks() { var point = Toople.Point(1f, 2f, 3f); point.Should().BeEquivalentTo(new Toople(1f, 2f, 3f, 1f)); var p2 = Toople.Point(1f, 2f, 3f); point.Equals(p2).Should().BeTrue(); var vector = Toople.Vector(1f, 2f, 3f); point.Equals(vector).Should().BeFalse(); }
static void Main(string[] args) { var projectile = new Projectile( Toople.Point(0, 1f, 0), Toople.Vector(1f, 1f, 1f).Normalize() * 4 ); var environment = new Environment( Toople.Vector(0, -0.1f, 0), Toople.Vector(-0.01f, 0, 0)); var simulation = new Simulation(environment, projectile); var ticks = simulation.Run(); Console.WriteLine($"IMPACT! in {ticks} ticks"); }
public void Vector_CreatesVector() { var vector = Toople.Vector(1f, 2f, 3f); vector.IsVector.Should().BeTrue(); }
public void NormalizedMagnitude_isOne(float x, float y, float z) { var normalize = Toople.Vector(x, y, z).Normalize(); normalize.Magnitude.Should().BeApproximately(1f, (float)1e-5); }
public void Normalization_simpleCase() { var v = Toople.Vector(4f, 0, 0); v.Normalize().Should().BeEquivalentTo(Toople.Vector(1f, 0, 0)); }
public void Magnitude_negatives() { var v = Toople.Vector(1f, -2f, -3f); v.Magnitude.Should().BeApproximately(MathF.Sqrt(14f), float.Epsilon); }
public void Magnitude_simpleCase() { var v = Toople.Vector(1f, 2f, 3f); v.Magnitude.Should().BeApproximately(MathF.Sqrt(14f), float.Epsilon); }
public void Magnitude_identities(float x, float y, float z, float magnitude) { var v = Toople.Vector(x, y, z); v.Magnitude.Should().BeApproximately(magnitude, float.Epsilon); }