用C#做一个画笔工具,具体要求是:当画出的线是曲线时要求调整为直线,如果曲度大则调整为圆

解决方案 »

  1.   

    我只能先假设lz已经解决了"画线"的工作,而且画线的方法不是photoshop或者word里面那种操作者点出3点或更多的点,然后软件自动算出曲线的方案(废话,都自动算出曲线来了,还要我们设计啥)
    其次我想到的算法的效率受到lz设计的画线的方法限制,如果lz你画线时可以点上无数个转折点,没有数量上限的话,那我建议还是别搞了,可能会很慢上面是题外话,其实思路很简单,就是将曲线的起点,终点,以及操作者点选的某个点,组成一个三角型,计算起点角和重点角,只要其中有一个过大(比如40度,具体得有你自己看了)那这条就需要调整成圆形,否则另选一个点,再此组成三角型来计算,直到这个三角构图计算涵盖所有操作者选中的点(或者已经中途调整成了一个圆)