Source: http://webpages.csus.edu/mjv/Math32coords3D.pdf