位置: 编程技术 - 正文

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)

  • 小规模纳税人零申报逾期未申报
  • 个体工商户季度不超过30万免增值税吗
  • 住宿报销是开普票还是专票
  • 我公司给对方公司付款
  • 资本公积是属于什么类账户
  • 货物出口到保税区复进口
  • 会计档案交接怎么填写
  • 财产转让应纳税额如果是负数怎么办
  • 不动产可以拆吗
  • 运输费用 成本
  • 什么时候需要计算环境熵变
  • 风险纳税人不处理行吗
  • 员工一次性赔偿怎么算
  • 预付款退回扣除什么意思
  • 法人变更股权不转让有什么影响么么
  • linux -pv
  • iphone7如何设置输入法
  • 如何结束excel
  • linux 将一个文件的内容给另一个文件
  • ie增强的安全配置已启用上不了网
  • 错账按产生原因来看有两种
  • 公司不运营了需要注销吗
  • 深度学习模型精度fp16和fp32
  • 建筑企业项目部开户
  • SSD目标检测算法
  • 多线程 cpp
  • php公众号开发框架
  • 礼品赠送纳税标准
  • 每月计提的工资包含社保吗
  • 劳务派遣怎么开
  • 员工意外伤害保险最多赔多少
  • mysql5.7免安装版
  • 企业收购合并中土地问题
  • 进口关税完税价格的计算公式
  • sql server join
  • sql的where条件怎么写
  • mysql分片sql
  • 社会保险差额缴纳
  • 工程施工企业收入1750万,利润怎么算
  • 报销单据粘贴单模板
  • 小规模减免增值税政策
  • 长期借款计提的利息可能借记
  • 已认证抵扣的发票如何红字信息表
  • 红冲去年的管理费用
  • 农产品如何进入批发市场
  • 融资租赁固定资产利息的账务处理实例
  • 公司销售二手车怎么开票
  • 管理费用贷方有余额怎么处理
  • 固定资产折旧的会计凭证
  • 服务费税额部分计算公式
  • 工程结算科目是一级科目吗?
  • 加盟店直营店什么意思
  • 费用分摊的分录
  • SQL Server Alwayson添加监听器失败的解决方法
  • ubuntu安装软件没反应
  • win10更新dx
  • XP系统安装不了QQ
  • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
  • xmp文件是干嘛用的
  • windows10 rs2
  • xp内置语音输入没反应
  • 为什么要淘汰相关性高的指标
  • win8怎么切换hdmi
  • windows10指纹用不了
  • mac使用命令行
  • centos7添加ip地址
  • win7系统防火墙无法关闭
  • jquery.ui
  • node.js开发指南
  • setcontentview报错
  • perl 文件
  • shell脚本模拟ctrl
  • 查看项目层级结构怎么查
  • Android开发工具箱
  • 一般纳税人开租赁费发票税率是多少
  • 个人劳务承包需要什么资质
  • 烟台市独生子女费 打什么电话咨询
  • 江西省国家税务局总局官网
  • 税控盘红字发票开具流程
  • 补交以前年度城建税费怎么做账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设