i came from imaginary numbers which were extended to make quaternions.
i, j, k comes from FORTRAN's implicit types -- by default, names starting with I-N are integers and all other names are real.
i, j, k comes from FORTRAN's implicit types -- by default, names starting with I-N are integers and all other names are real.