forked from: 3D rotation 02

