匀速贝塞尔曲线路径规划工具

在做游戏开发的时候经常会用到贝塞尔曲线来规划路径,在网上也没找到合适的demo,要么就是不支持高阶贝塞尔,要么就是不能匀速运动。所以决定趁着闲余时间自己写一个工具,方便以后用。
于是就有了该项目,并且我已经把源码放在GitHub上了,有兴趣的可以看看,希望能帮到有所需要的朋友。

更新日志:

2020.2.7:

  • 新添加三阶贝塞尔曲线
  • 平滑度自定义

该工程基于cocos creator 2.2.2版本的!

GitHub项目地址

在线演示地址(可以直接在上面规划好后导出json文件)

下面来简单演示一下该工程:
在这里插入图片描述
在这里插入图片描述
目前支持二阶和三阶贝塞尔曲线绘制匀速运动导出路径的JSON数据
在项目中可以直接读取json文件,里面存储了许多连续的曲线点,直接拿来用即可。
可以根据不同的需求来达到想要的效果。

匀速运动实现思路很简单,其实就是利用了微积分思想,把曲线分割成许多份,每一份此时就可以看作直线运动了!

需要注意的是,该项目分辨率是1920*1080的,在不同的项目中使用可能需要转换下坐标!

导出的json数据格式如下:

{
    "time": 2, //路径运行总时长
    "length": 1718.4689669565246, //路径长度
    "points": [  //曲线点集合
        {
            "x": 588.1929046563193,  //x 坐标
            "y": 375.9645232815965,  //y 坐标
            "length": 0,  //上一点到该点的距离,由于该点是起点,所以为0
            "time": 0  //上一点到该点需要的时间,由于该点是起点,所以为0
            
        },
        {
            "x": 595.209865415573,
            "y": 362.11259538476247,
            "length": 15.527834515990738,
            "time": 0.018071707798705424
        },
        {
            "x": 601.8241340965079,
            "y": 348.46733368343007,
            "length": 15.163829235435424,
            "time": 0.01764806874841756
        },
        {
            "x": 608.0357106991243,
            "y": 335.02873817759905,
            "length": 14.804713204230342,
            "time": 0.017230119936876214
        },
        {
            "x": 613.8445952234222,
            "y": 321.7968088672695,
            "length": 14.450850933083036,
            "time": 0.016818285591361077
        },
        {
            "x": 619.2507876694015,
            "y": 308.7715457524413,
            "length": 14.102637908330035,
            "time": 0.0164130259894147
        },
        ...

如果你们有什么好的建议,或者发现了bug可以留言告诉我,我会尽力去完善它。(毕竟是我的第一个开源项目,我还是会好好维护的,23333)

如果觉得好用的朋友希望能点个赞,关注一下哟,你们的每一个star都是对我最大的鼓励和动力!

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值