Computer Graphics Using Java 2D and 3D by Y. Daniel Liang & Hong Zhang