Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }