Net/C#三种画笔(普通画笔,荧光笔,排笔)的实现
做画笔功能时候用C#写的一个demo,实际的软件采用C++开发 。
该demo仅仅提供一种实现的思路,所以你并不要对其抱着太大的期望,功能的扩展和后续改进需要你自己的努力和根据需求来实现.
绘制路径的优化使用的b-spline算法,参见codeproject上一篇关于该算法的解析和实现.
普通画笔和荧光笔的实现原理基本是一样的,这里使用的DrawEllipse(绘制圆形),当然你也可以使用line,poygon等等关键在于你如何在最后得到一条平滑的曲线,使用贝塞尔曲线优化算法或者其他的插值算法均可以达到这种效果
排笔的实现使用的是drawline方法,通过一个点绘制一个带有倾斜角度的line,线的倾斜角度取决你自己的需求,本demo取的是一个自我觉得效果还OK的差值。
代码没有太多解释的地方,关键就是b-spline算法,这个需要花点时间深入学习下,其他的东西就相对简单的了
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。