Ejemplo n.º 1
0
        public static Matrix LookAtLH(Location start, Location end, Location up)
        {
            Location zAxis = (end - start).Normalize();
            Location xAxis = up.CrossProduct(zAxis).Normalize();
            Location yAxis = zAxis.CrossProduct(xAxis);

            return(new Matrix((double)xAxis.X, (double)yAxis.X, (double)zAxis.X, 0, (double)xAxis.Y,
                              (double)yAxis.Y, (double)zAxis.Y, 0, (double)xAxis.Z, (double)yAxis.Z, (double)zAxis.Z, 0,
                              (double)-xAxis.Dot(start), (double)-yAxis.Dot(start), (double)-zAxis.Dot(start), 1));
        }