Net/C#三种画笔(普通画笔,荧光笔,排笔)的实现

做画笔功能时候用C#写的一个demo,实际的软件采用C++开发 。

该demo仅仅提供一种实现的思路,所以你并不要对其抱着太大的期望,功能的扩展和后续改进需要你自己的努力和根据需求来实现.

绘制路径的优化使用的b-spline算法,参见codeproject上一篇关于该算法的解析和实现.

普通画笔和荧光笔的实现原理基本是一样的,这里使用的DrawEllipse(绘制圆形),当然你也可以使用line,poygon等等关键在于你如何在最后得到一条平滑的曲线,使用贝塞尔曲线优化算法或者其他的插值算法均可以达到这种效果

排笔的实现使用的是drawline方法,通过一个点绘制一个带有倾斜角度的line,线的倾斜角度取决你自己的需求,本demo取的是一个自我觉得效果还OK的差值。

代码没有太多解释的地方,关键就是b-spline算法,这个需要花点时间深入学习下,其他的东西就相对简单的了

 

Net/C#三种画笔(普通画笔,荧光笔,排笔)的实现,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。