C#绘图工具之Rotate

      中间的一段时间因为要为下个项目做准备,暂时放下了绘图工具方面的学习,封装了一个TCP的类。最近总算把手上的一些杂活弄完了,继续研究GDI方面的知识。

      记得在绘图工具之Redim那一讲中有提到接下来是要说说Rotate功能的实现,那这一讲就看看Rotate的效果。先看看截图吧。

     

      在旋转功能的实现中有两个知识点需要特别说明一下,一个是基于基点按照一定的角度旋转后得到一个新点,这个完全是数学方面的知识,可以很容易的推导出公式(x_new=x_old*cosa-y_old*sina,y_new=x_old*sina+y_old*cosa),自己写个函数封装一下就OK了。还有一个就是元素的旋转,在GDI中提供的类中有一个GraphicsPath,其中有个Transform(Matrix)的方法,既然参数需要矩阵,我们就定义一个矩阵,Matrix.RotateAt(Angle,基点),感觉一切都很顺理成章。旋转中搞清楚了这两个也就很容易实现了。

       接下来的一些任务就是如何实现圆弧和圆,以及一些文本的绘制功能,这些还需要自己去研究和学习,当然了,如果大家想学习的话,看代码是最好的办法,可以Email给我,我把源代码发给大家!!

 

      下载地址:https://files.cnblogs.com/wangyong/vectshapes.rar

posted @ 2011-04-09 17:14  勇者归来  阅读(662)  评论(5编辑  收藏  举报