public List <Vector3> ViewTransformation(List <Vector3> vectors) { Matrix viewMatrix = MatrixTransformations.ViewMatrix(r, (float)phi_radians, (float)-theta_radians); /* Matrix axesRightSideUpMatrix = new Matrix(4, 4); * axesRightSideUpMatrix.mat = new float[4, 4] * { * {(float)Math.Cos(a),-(float)Math.Sin(a),0,0 }, * {(float)Math.Sin(a),(float)Math.Cos(a),0,0 }, * {0,0,1,0 }, * {0,0,0,1 } * };*/ List <Vector3> Transformed = new List <Vector3>(); foreach (Vector3 vector in vectors) { //var newvector = vector - Camera; Matrix vectorMatrix = new Matrix(vector); vectorMatrix = viewMatrix * vectorMatrix; Transformed.Add(vectorMatrix.ToVector3() - Camera); } return(Transformed); }
public static List <Vector2> ProjectionTransformation(List <Vector3> vectors) { List <Vector2> projection = new List <Vector2>(); foreach (Vector3 vector in vectors) { var projectionmatrix = MatrixTransformations.getPerspectiveTransformation(vector.Z, d); var matrix = new Matrix(vector); projection.Add((projectionmatrix * matrix).ToVector2()); } return(projection); }