位置: 编程技术 - 正文

cocos2dx CardinalSpline和CatmullRom算法

编辑:rootadmin

推荐整理分享cocos2dx CardinalSpline和CatmullRom算法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

想想那些鱼儿游动的漂亮曲线,还记得水果忍者的手指划过那一道道划痕吗,众所周知这一切都是很多个点组成的线段,这些都离不开样条插&#;算法。

特别注意:CardinalSpline和CatmullRom这两种算法都是过点式,就是形成的曲线一定经过样品点,但是贝塞尔曲线就不一定经过所有的样品点

cocos2dx中主要有两处用到了:

一个是Action下面类:points代表样品点集合,tension代表张力因子,实际效果是如果等于1就是画直直的线,默认等于0.5,就是比较平滑的线,一般去0到1直之间调节

CardinalSplineBy::create(float duration, cocos2d::PointArray *points, float tension)

CardinalSplineTo::create(float duration, cocos2d::PointArray *points, float tension)

CatmullRomTo::create(float duration, cocos2d::PointArray *points)//等效于上面的tension=0.5

CatmullRomBy::create(float duration, cocos2d::PointArray *points)//等效于上面的tension=0.5

cocos2dx CardinalSpline和CatmullRom算法

一个是DrawNode类下面成员函数,用来画图segments代表共用几个点来形成这条曲线

void drawCardinalSpline(PointArray *points, float tension, unsigned int segments, const Color4F &color);

void drawCatmullRom(PointArray *points, unsigned int segments, const Color4F &color);

cocos2dx中核心源码:

注解:

这里面lt特别不好理解,实际上这里是吧segments个点平均分成points总数个部分,每个segment的点占自己部分的百分比就是这个lt的意思,

这里面p又是什么意思呢,实际上他就表示区间的序号,在同一个区间内p是一样的。

所以此算法大概的原理就是把需要生成的segments点按样品点总数平均分一下,在固定区间内,找到固定的4个实际样品点,然后在这个区间内按点所在这个区间比例位置逐

个使用ccCardinalSplineAt算法生成新点,是一种典型分治法。不过这些仅仅是程序理解,关于样条插&#;算法推导过程估计还得找找大学专业的书本了。

这里通过cocos2dx源码,小小总结一下CatmullRom算法公式:

Cocos2d-x的学习之旅(二)HelloWorld 声明本教程仅用于初学cocos2dx同学使用,内容由本人(Code-Man)编写,此教程使用cocos2dx版本为3.4。本教程内容可以自由转载,但必须同时附带本声明,或

屏蔽多点触摸 环境cocos2d-x-3.1.1ios版本找到AppController.mm修改方法-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions中[eaglViewsetMultipleTouchEnab

Android NDK Cocos2dx 3.4 Label中文显示 小白一个,因为中文显示问题上网找了一天,解决办法大部分不合适(因为复杂,小白嘛=,=)TextFieldTTF可以显示中文,Label却不行,打开源码,豁然开朗

标签: cocos2dx CardinalSpline和CatmullRom算法

本文链接地址:https://www.jiuchutong.com/biancheng/368803.html 转载请保留说明!

上一篇:Cocos2d-x c++和java相互调用

下一篇:Cocos2d-x的学习之旅(二)HelloWorld(cocos 2d x)

  • 小规模纳税人预缴企业所得税
  • 什么是税收收入效应
  • 去年开的专票今年可以作废吗
  • 公司股东投资比例
  • 纸质银行承兑到期多久时间之内可以兑现
  • 摊销折旧是什么意思
  • 非公益捐赠税率
  • 商铺租赁合同的用途怎么写
  • 存出的保证金
  • 税号开错了
  • 工程发票没写经办人没写可以吗
  • 小额贷款公司借钱容易吗
  • 代理销售怎么记账
  • 供应商开免税的发票,为何还要收3个点税金?
  • 技术服务费属于什么大类
  • 应付质保金到期怎么办
  • 房地产企业预收款什么时候确认收入
  • 个体工商户核定征收怎么报税
  • 积分抵现金活动怎么做
  • 购买方已认证的专票怎么红冲
  • 某企业存货跌价准备原材料科目贷方
  • osXYosemite怎么更新
  • 帮忙介绍业务
  • 键盘剪切板怎么打开
  • 怎样改善现金流量比率
  • 存货盘盈怎么做账
  • php中的die
  • file php
  • 房屋出租房产税如何计算
  • torch训练模型
  • qiankun跨域问题
  • the模板引擎
  • php jquery
  • 美国人用什么英语词典
  • 小微企业普惠性税收减免政策2022
  • 人力资源公司如何找客户
  • 应付债券相关分录
  • 上市公司净资产转正的方法
  • 酒店周转材料怎么摊销
  • 增值税发票抵扣联的作用
  • 安置房是交付的时候交钱吗
  • 客户送我东西怎么办
  • 小企业固定资产折旧方法
  • 实物出资没有发票怎么办
  • 暂估成本以后也没有票回来了
  • 毁损的原材料怎么处理
  • 总公司调拨子公司怎么办
  • 颁给供应商的奖项
  • 分包抵扣金额
  • 发票开预付卡充值可以计入费用吗?
  • 没有水电费发票可以入账吗
  • 新冠肺炎疫情相关的公共政策
  • 小企业会计准则主要按照什么计量
  • 现金账务处理原则规定
  • access数据库sql语言
  • win10 Realtek HD Audio更新失败怎么办 win10关闭UAC解决Realtek HD Audio更新失败
  • win10删除的文件恢复
  • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
  • Linux下Dr.com(802.1x)拨号上网完美解决方法(Ubuntu)
  • win ubuntu
  • 如何在mac上保存文件
  • xp系统怎么安装网络驱动
  • windows7禁用wifi怎么办
  • win102021年1月大更新
  • 基于centos6安装kvm服务
  • win10搜索设置选项
  • android yield
  • [置顶]bilinovel
  • javascript+css3开发打气球小游戏完整代码
  • python的linux
  • shell中删除文件和目录
  • 用javascript写表单代码
  • 深入理解ffmpeg pdf
  • jquery each return
  • 甘肃省网上税务登记流程
  • 土地增值税清算退税涉及企业所得税补缴
  • 深圳地税局地址工作时间
  • 广西壮族自治区图书馆
  • 车位过户需要契税发票吗
  • 滨州市望海花园北侧规划
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设