コード例 #1
0
        public void ComputeAngularMagnitude()
        {
            var v1 = new Vector4fd(1, 0, 0, 0);
            var v2 = new Vector4fd(0, 1, 0, 0);

            v1.AngularMagnitude(v2).Should().BeApproximately(Math.PI / 2, double.Epsilon);
            v2.AngularMagnitude(v1).Should().BeApproximately(Math.PI / 2, double.Epsilon); // unsigned angle
        }
コード例 #2
0
        public void HaveCorrectValues()
        {
            var v = new Vector4fd(1, 2, 3, 4);

            v.X.Should().Be(1);
            v.Y.Should().Be(2);
            v.Z.Should().Be(3);
            v.W.Should().Be(4);
        }
コード例 #3
0
        public void ConvertFromValueTupleOfFloat()
        {
            Vector4fd v = (1f, 0f, -1f, 2f);

            v.X.Should().Be(1);
            v.Y.Should().Be(0);
            v.Z.Should().Be(-1);
            v.W.Should().Be(2);
        }
コード例 #4
0
        public void ConvertFromValueTupleOfDouble()
        {
            Vector4fd v = (1, 0, -1, 2);

            v.X.Should().Be(1);
            v.Y.Should().Be(0);
            v.Z.Should().Be(-1);
            v.W.Should().Be(2);
        }
コード例 #5
0
        public void ConverToSpan()
        {
            Vector4fd v    = (1, 2, 3, 4);
            var       span = v.AsSpan();

            span[0].Should().Be(1);
            span[1].Should().Be(2);
            span[2].Should().Be(3);
            span[3].Should().Be(4);
        }
コード例 #6
0
        public void ComputeUnit()
        {
            var normalized = new Vector4fd(0.1, 0, 0, 0).Unit();

            normalized.X
            .Should()
            .BeApproximately(1, double.Epsilon);
            normalized.Y
            .Should()
            .Be(0);
            normalized.Z
            .Should()
            .Be(0);
            normalized.W
            .Should()
            .Be(0);
        }