纯Javascript实现平滑曲线生成

网站建设4年前发布
28 0 0

202303061347053261ebe688e68744e3942432bd426bf7396dc2902,平滑曲线生成是一个很实用的技术。,很多时候,我们都需要通过绘制一些折线,然后让计算机平滑的连接起来,或者是生成一些平滑的面。,先来看下最终效果(红色为我们输入的直线,蓝色为拟合过后的曲线) 首尾可以特殊处理让图形看起来更好)。,20230306134705a5fc3a4138a7ff06c29471748e3c13ac29edc3252,实现思路是利用贝塞尔曲线进行拟合。,贝塞尔曲线(英语:Bézier curve)是计算机图形学中相当重要的参数曲线。,二次贝塞尔曲线,2023030613470656bed6527f17e909723583b7a4342a17f736ad292,二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪:,20230306141428776750b361936c7acf94687e6e443fabe0ce01525,三次贝塞尔曲线,20230306134850312813d742fd9d8ac765837bd307bbed02b0c0158,对于三次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2,和由二次曲线描述的点R0、R1所建构:,20230306134707195bbe369c76c4ef7aa455dbca175462ae5524763,根据上面的公式我们可以得到计算函数。,20230306134708b9f339671cb9f25f68c2521cbefac96cbad455263,问题在于如何得到控制点,我们以比较简单的方法:,2023030613470886470c120ebc1cec73d5873524ace0a6aca3e0117,ab线段:这里简单处理,只使用了二阶的曲线生成。,PS:这里可以按照个人想法处理。,bc线段:使用abc计算出来的控制点c2和bcd计算出来的控制点c3以此类推。

© 版权声明

相关文章