http://blog.csdn.net/qq_31785871/article/details/52456773 http://www.cnblogs.com/graphics/archive/2010/06/01/1749569.html