public void GetColumn() { Matrix2x2f m = Indexed2x2(); Assert.AreEqual(new Vector2f(0, 1), m.GetColumn(0)); Assert.AreEqual(new Vector2f(2, 3), m.GetColumn(1)); }
public void SetColumn() { Matrix2x2f m = new Matrix2x2f(); m.SetColumn(0, new Vector2f(0, 1)); m.SetColumn(1, new Vector2f(2, 3)); Assert.AreEqual(new Vector2f(0, 1), m.GetColumn(0)); Assert.AreEqual(new Vector2f(2, 3), m.GetColumn(1)); }
public static Matrix2x2f PolarDecomposition(Matrix2x2f m) { Matrix2x2f q = m + new Matrix2x2f(m.m11, -m.m10, -m.m01, m.m00); Vector2f c0 = q.GetColumn(0); Vector2f c1 = q.GetColumn(1); float s = c0.Magnitude; q.SetColumn(0, c0 / s); q.SetColumn(1, c1 / s); return(q); }
public static Matrix2x2f QRDecomposition(Matrix2x2f m) { Vector2f a = m.GetColumn(0).Normalized; Matrix2x2f q = new Matrix2x2f(); q.SetColumn(0, a); q.SetColumn(1, a.PerpendicularCCW); return(q); }