/* * public Matrix3D VratiMatrix3D() * { * return new Matrix3D( * matrica[0, 0], matrica[0, 1], matrica[0, 2], matrica[0, 3], * matrica[1, 0], matrica[1, 1], matrica[1, 2], matrica[1, 3], * matrica[2, 0], matrica[2, 1], matrica[2, 2], matrica[2, 3], * matrica[3, 0], matrica[3, 1], matrica[3, 2], matrica[3, 3]); * } */ public static Matrica4x4 PomnoziMatrice(Matrica4x4 m_lijeva, Matrica4x4 m_desna) { Matrica4x4 m_tmp = new Matrica4x4(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { m_tmp.matrica[i, j] = 0; for (int k = 0; k < 4; k++) { m_tmp.matrica[i, j] += m_lijeva.matrica[i, k] * m_desna.matrica[k, j]; } } } return(m_tmp); }
public static Vector3D PomnoziVektorMatricom(Matrica4x4 m, Vector3D v) { double[] v_tmp = new double[4] { 0, 0, 0, 0 }; double[] v_orig = new double[4] { v.X, v.Y, v.Z, 1 }; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { v_tmp[i] += m.matrica[i, j] * v_orig[j]; } } return(new Vector3D(v_tmp[0], v_tmp[1], v_tmp[2])); }