位置: 编程技术 - 正文

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)

  • 如何确定合伙企业
  • 2020年小规模纳税人增值税起征点
  • 通过固定资产科目核算
  • 固定资产一次性折旧政策2023
  • 食品销售税务起征点是多少
  • 上月未记账本月可以记账吗
  • 应收账款计提坏账比例
  • 成本类与费用类科目哪些区别
  • 公司租赁的车辆发生的费用都可以报销吗?
  • 工程款的税是怎么扣除的?
  • 计提工资后发放时结转到什么科目
  • 货运代理公司可以开运输费发票吗
  • 企业所得税可以扣除的项目有哪些
  • 有限合伙人公司
  • 给客户退差价怎么说
  • 固定资产残值率一般是多少
  • 母公司资产转移到子公司
  • 业务推广费税务处理
  • 个人报销汽油费会计分录
  • c盘垃圾太多需要重装系统嘛
  • 银行存款日记账怎么记账
  • 收到租金税费怎么计算
  • 在公司预支费用怎么写单据
  • 如何取消置顶聊天折叠
  • 如何加快身体的新陈代谢
  • php检测文件是否存在
  • 建筑行业企业所得税怎么征收
  • wordpress自定义函数
  • 午夜太阳的意思
  • 加拿大西北部的首都
  • 收到承兑汇票怎么签收
  • 一天看小说十几个小时的人
  • IIS 7.5 asp Session超时时间设置方法
  • php添加
  • php 替换
  • 图文处理是做什么工作
  • 转账支票购买办公用品一批,共计600元
  • 应交税金会计编码
  • 社保基数是按基本工资还是应发工资
  • 认缴制对实务操作的可能影响有哪些?
  • 现金流量表和资产负债表的区别
  • 解决问题对吗
  • db2教程
  • mysql5.7压缩包安装配置教程
  • 公司业务订金怎么退
  • 二季度盈利三季度亏损
  • 利息应怎么录入收入
  • 应收账款和应付账款可以对冲吗
  • 无票收入不走对公账户
  • 小企业外币业务包括
  • 同一控制下的长投入账价值按什么计算
  • 小规模发票跨月冲红怎么纳税申报
  • 进项不能从销项抵扣
  • 收到红字发票账务处理应附哪些资料呢
  • 场地租赁费属于劳务还是服务
  • 目前哪些费用不能抵扣
  • 企业所得税退税会计分录
  • 借款收据怎样才有法律效力
  • mysql中的存储过程
  • ubuntu中怎么安装vscode
  • 硬盘安装在机箱内,属于主机的组成部分
  • 隐藏的系统
  • windows共享文件夹端口号
  • ubuntu15.04安装教程
  • linux 常见
  • 嵌入式linux开发用什么语言
  • 深入理解新发展理念,推进供给侧结构性改革心得体会
  • ghost32命令参数
  • JS实现的ajax和同源策略(实例讲解)
  • javascript数学
  • javascript详细介绍
  • javascriptwhile
  • activity跳转闪退
  • jquery easyui 教程
  • 税务罚款会影响宝宝当公务员不
  • 淮北市国家税务总局电话
  • 公民海外收入纳税
  • 1国家税务总局
  • 契税补贴网上申请
  • 佛山退休办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设