位置: 编程技术 - 正文

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年
  • 增值税实际缴纳总额
  • 年底没有取得发票企业所得税
  • 预缴税款是开票金额的多少
  • 教育培训机构涉税问题
  • 固定资产进项发票可以抵扣吗为什么
  • 存货缺货成本如何算
  • 免征文化事业建设费条件的销售额标准
  • 领用自产产品用于在建工程入账金额
  • 收入未实现成本怎么进
  • 购买基金会计核算
  • window休眠
  • vue框架使用方法
  • 残保金零申报但是逾期未报
  • mac的pdf怎么转换成word
  • 应收账款补贴
  • 在建工程进项税可以抵扣吗
  • 非成品柴油用途
  • b站导出预设
  • vue请求后端接口
  • 你还没等于几
  • php实现四种基础方式
  • 汽车租赁的法律
  • 企业应纳税所得额的计算应遵循权责发生制原则
  • 发票作废是什么样的
  • sql server 实现数据值加一减一
  • 租赁费的增值税可以抵扣吗
  • 固定资产加速折旧计算方法
  • 会计核算形式的设计具体内容包括
  • 同在一个单位
  • 坏账损失的定义
  • 公司餐费怎么入账
  • 捐赠支出的账务处理
  • 用现金券付房租违法吗
  • 新公司几个月不报税
  • 主营业务收入净额指的是什么
  • 现金支付货款怎么做账
  • 在建工程前期费用明细
  • 用友t3计提折旧了没有生成凭证
  • 原材料采购未入库会计分录
  • 企业汇算清缴需要提供什么资料
  • 包工包料怎么开13个点发票
  • 转回存货跌价准备对递延所得税资产的影响
  • 企业如何建账做账
  • sql入门课程
  • mysql优化查询
  • SQLServer Execpt和not in 性能区别
  • innodb_trx表
  • MySql 5.6.35 winx64 安装详细教程
  • win8无法识别的usb设备 怎么解决
  • window8系统更新
  • mac红
  • 苹果手机
  • windows7升级到win8
  • 在win8下能直接装win7吗
  • centos 做bond
  • win10任务栏不显示输入法
  • opencv python
  • Javascript获取元素的父元素
  • 手机gpu过度绘制
  • python console不能用
  • python生成pyc
  • python中函数参数类型
  • android 5.1 WIFI图标上的感叹号及其解决办法
  • 江西省税务局拟录用人员公示
  • 江苏电子税务局客服电话
  • 天津河东区医院地址电话
  • 进口汽车零部件编码查询
  • 环保税怎么申报?看完你就明白了
  • 邮政银行开税票要什么材料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设