Exemplo n.º 1
0
        static Matrix GetIntegratedBasisMatrix(Triangle triangle, List <Point> points)
        {
            double triangleSquare = MinimalAngleAlgorithm.getTriangleSquare(triangle, points);

            double[ , ] res = new double[3, 3]
            {
                { 2, 1, 1 },
                { 1, 2, 1 },
                { 1, 1, 2 },
            };

            return((2 * triangleSquare) / 24.0 * (new Matrix(res)));
        }
Exemplo n.º 2
0
        static Matrix FormatGrammMatrix(Triangle triangle, List <Point> points, Matrix A)
        {
            double triangleSquare = 2 * MinimalAngleAlgorithm.getTriangleSquare(triangle, points);
            Matrix res            = new Matrix(3, 3);
            Point  p1             = points[triangle.A];
            Point  p2             = points[triangle.B];
            Point  p3             = points[triangle.C];
            double bi             = p2.Y - p3.Y;
            double ci             = p3.X - p2.X;
            double bj             = p3.Y - p1.Y;
            double cj             = p1.X - p3.X;
            double bm             = p1.Y - p2.Y;
            double cm             = p2.X - p1.X;

            res[0, 0] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bi * bi + A[1, 1] * ci * ci);
            res[0, 1] = res[1, 0] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bi * bj + A[1, 1] * ci * cj);
            res[0, 2] = res[2, 0] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bi * bm + A[1, 1] * ci * cm);
            res[1, 1] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bj * bj + A[1, 1] * cj * cj);
            res[1, 2] = res[2, 1] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bj * bm + A[1, 1] * cj * cm);
            res[2, 2] = 1 / (2.0 * triangleSquare) * (A[0, 0] * bm * bm + A[1, 1] * cm * cm);
            return(res);
        }