Exemplo n.º 1
0
        public void AnglesSumOfTriangle2d()
        {
            double actual = NSpaces.NSphereSurfaceArea(2, 1) / 2;

            var rand = new Random();

            var vertexes = new List <Vector <double> >()
            {
                new DenseVector(new[] { rand.NextDouble(), rand.NextDouble() }),
                new DenseVector(new[] { rand.NextDouble(), rand.NextDouble() }),
                new DenseVector(new[] { rand.NextDouble(), rand.NextDouble() }),
            };

            var angle1Vectors = new List <Vector <double> >()
            {
                vertexes[1] - vertexes[0],
                vertexes[2] - vertexes[0],
            };
            var angle2Vectors = new List <Vector <double> >()
            {
                vertexes[0] - vertexes[1],
                vertexes[2] - vertexes[1],
            };
            var angle3Vectors = new List <Vector <double> >()
            {
                vertexes[0] - vertexes[2],
                vertexes[1] - vertexes[2],
            };

            double real = Math.Abs(NSpaces.SolidAngle(angle1Vectors)) + Math.Abs(NSpaces.SolidAngle(angle2Vectors)) + Math.Abs(NSpaces.SolidAngle(angle3Vectors));

            Assert.IsTrue(Math.Abs(actual - real) <= Epsilon);
        }
Exemplo n.º 2
0
        public void RightAngleDiv2Test2d()
        {
            double actual = NSpaces.NSphereSurfaceAreaOrtVectors(2) / 2;

            var vectors = new List <Vector <double> >()
            {
                new DenseVector(new[] { 1.0, 0.0 }),
                new DenseVector(new[] { 1.0, 1.0 }),
            };
            double real = NSpaces.SolidAngle(vectors);

            Assert.IsTrue(Math.Abs(actual - real) <= Epsilon);
        }