当前位置: 首页>>代码示例>>C#>>正文


C# Matrix.Invert方法代码示例

本文整理汇总了C#中Matrix.Invert方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix.Invert方法的具体用法?C# Matrix.Invert怎么用?C# Matrix.Invert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Matrix的用法示例。


在下文中一共展示了Matrix.Invert方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: A_matrix_multiplied_with_its_inverse_results_in_the_identity_matrix

        public void A_matrix_multiplied_with_its_inverse_results_in_the_identity_matrix()
        {
            var matrix = new Matrix(
                1, 0, 0, 3,
                0, 2, 0, 5,
                0, 0, 4, 7,
                0, 0, 0, 1);

            Assert.Equal(Matrix.Identity, matrix * matrix.Invert());
        }
开发者ID:pritisutar,项目名称:kelly,代码行数:10,代码来源:When_inverting_a_matrix.cs

示例2: Trying_to_invert_a_singular_matrix_causes_an_exception_to_be_thrown

        public void Trying_to_invert_a_singular_matrix_causes_an_exception_to_be_thrown()
        {
            var matrix = new Matrix(
                0, 0, 0, 0,
                1, 2, 3, 4,
                5, 6, 7, 8,
                9, 1, 2, 3
                );

            Assert.Throws<Exception>(() => matrix.Invert());
        }
开发者ID:pritisutar,项目名称:kelly,代码行数:11,代码来源:When_inverting_a_matrix.cs

示例3: Multiplication_of_a_matrix_with_its_inverse_is_commutative

        public void Multiplication_of_a_matrix_with_its_inverse_is_commutative()
        {
            var matrix = new Matrix(
                1, 0, 0, 3,
                0, 2, 0, 5,
                0, 0, 4, 7,
                0, 0, 0, 1);

            var inverse = matrix.Invert();
            Assert.Equal(matrix * inverse, inverse * matrix);
        }
开发者ID:pritisutar,项目名称:kelly,代码行数:11,代码来源:When_inverting_a_matrix.cs

示例4: Power

    public static Matrix Power(Matrix m, int pow)           // Power matrix to exponent
    {
        if (pow == 0) return IdentityMatrix(m.rows, m.cols);
        if (pow == 1) return m.Duplicate();
        if (pow == -1) return m.Invert();

        Matrix x;
        if (pow < 0) { x = m.Invert(); pow *= -1; }
        else x = m.Duplicate();

        Matrix ret = IdentityMatrix(m.rows, m.cols);
        while (pow != 0)
        {
            if ((pow & 1) == 1) ret *= x;
            x *= x;
            pow >>= 1;
        }
        return ret;
    }
开发者ID:ahmidou,项目名称:LightweightMatrixCSharp,代码行数:19,代码来源:Matrix.cs

示例5: Invert

 public static Matrix Invert(Matrix matrix)
 {
     Matrix result = new Matrix(matrix);
     result.Invert();
     return result;
 }
开发者ID:jlvermeulen,项目名称:algorithms-and-data-structures,代码行数:6,代码来源:Matrix.cs

示例6: Test

    /// <summary>
    /// Some test code to check that there are no typing errors in the formulars.
    /// </summary>
    public static void Test()
    {
      XMatrix xm1 = new XMatrix(23, -35, 837, 332, -3, 12);
      Matrix  m1 = new Matrix(23, -35, 837, 332, -3, 12);
      DumpMatrix(xm1, m1);
      XMatrix xm2 = new XMatrix(12, 235, 245, 42, 33, -56);
      Matrix  m2 = xm2.ToMatrix();
      DumpMatrix(xm2, m2);

//      xm1.Multiply(xm2, XMatrixOrder.Prepend);
//      m1.Multiply(m2, MatrixOrder.Append);
      xm1.Multiply(xm2, XMatrixOrder.Append);
      m1.Multiply(m2, MatrixOrder.Append);
      DumpMatrix(xm1, m1);

      xm1.Translate(-243, 342, XMatrixOrder.Append);
      m1.Translate(-243, 342, MatrixOrder.Append);
      DumpMatrix(xm1, m1);

      xm1.Scale(-5.66, 7.87);
      m1.Scale(-5.66f, 7.87f);
//      xm1.Scale(-5.66, 7.87, XMatrixOrder.Prepend);
//      m1.Scale(-5.66f, 7.87f, MatrixOrder.Prepend);
      DumpMatrix(xm1, m1);


      xm1.Rotate(135, XMatrixOrder.Append);
      m1.Rotate(135, MatrixOrder.Append);
      //      xm1.Scale(-5.66, 7.87, XMatrixOrder.Prepend);
      //      m1.Scale(-5.66f, 7.87f, MatrixOrder.Prepend);
      DumpMatrix(xm1, m1);

      xm1.RotateAt(177, new XPoint(-3456, 654), XMatrixOrder.Append);
      m1.RotateAt(177, new PointF(-3456, 654), MatrixOrder.Append);
      DumpMatrix(xm1, m1);

      xm1.Shear(0.76, -0.87, XMatrixOrder.Prepend);
      m1.Shear(0.76f, -0.87f, MatrixOrder.Prepend);
      DumpMatrix(xm1, m1);

      xm1 = new XMatrix(23, -35, 837, 332, -3, 12);
      m1 = new Matrix(23, -35, 837, 332, -3, 12);

      XPoint[] xpoints = new XPoint[3]{new XPoint(23, 10), new XPoint(-27, 120), new XPoint(-87, -55)};
      PointF[] points = new PointF[3]{new PointF(23, 10), new PointF(-27, 120), new PointF(-87, -55)};

      xm1.TransformPoints(xpoints);
      m1.TransformPoints(points);

      xm1.Invert();
      m1.Invert();
      DumpMatrix(xm1, m1);

    }
开发者ID:BackupTheBerlios,项目名称:zp7-svn,代码行数:57,代码来源:XMatrix.cs

示例7: Invert

 public static void Invert( ref Matrix m, out Matrix result )
 {
     result = m;
     result.Invert();
 }
开发者ID:benvanik,项目名称:Razmotron,代码行数:5,代码来源:Matrix.cs


注:本文中的Matrix.Invert方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。