public void NormalAt_should_calculate_the_normal_on_a_transformed_shape() { var shape = new TestShape(Matrix4x4.CreateRotationZ(Math.PI / 5).Scale(1, 0.5, 1)); var normal = shape.NormalAt(new Point(0, Math.Sqrt(2) / 2, -Math.Sqrt(2) / 2)); normal.Should().Be(new Vector(0, 0.97014, -0.24254)); }
public void NormalAt_should_calculate_the_normal_ona_translated_shape() { var shape = new TestShape(Matrix4x4.CreateTranslation(0, 1, 0)); var normal = shape.NormalAt(new Point(0, 1.70711, -0.70711)); normal.Should().Be(new Vector(0, 0.70711, -0.70711)); }