Fix point cordinate distortion after rotate serveral times

Because after each rotation the original points are replaced by
caculated rotated points which will lose some accuracy for they are
caculated in double
The solution is always keep the original points and store the
rotated value after each rotation for next rotate action's use

Signed-off-by: plysan <plysab@gmail.com>