位置: 编程技术 - 正文

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)

  • 金税四期有什么优势
  • 水利基金申报表减除项填什么
  • 免税蔬菜税额用什么表示
  • 增值发票盖章有什么用
  • 没有签订购销合同的协议
  • 税控盘备案在电子税务局操作流程
  • 无形资产的累计摊销是什么意思
  • 银行承兑到期之前怎么兑现
  • 半成品原材料报废会计处理怎么做?
  • 收到知识产权专用发票
  • 培训费没有发票怎么办
  • 个税申报系统中年收入不超6万元的确认错了怎么改
  • 补交以前年度增值税和滞纳金怎么开票
  • 5年内亏损弥补账务
  • 涉税软件技术维护费可以全额抵扣吗?
  • 房地产企业未出售的房子是否要交房产税
  • 车辆购置税能抵扣税款吗
  • 预缴的税款可以互抵吗
  • 带销货清单的专票咋红冲
  • 对公汇款银行退回
  • 报税残疾人保障金怎么算
  • 返利是冲减收入吗
  • 固定资产属于金融负债吗
  • 该内存不能为read怎么解决?win+r弹不出来也不好使
  • php ftp功能
  • 工程款包工包料怎么开票
  • 行政单位捐赠收入需要上缴财政吗
  • 应对怯场的方法
  • vue项目使用rem
  • json与json字符串
  • php正则函数内容匹配
  • svc语法
  • php 跨域
  • 外经证有效期到了,可以续吗
  • 季度申报残保金怎么计算
  • node.js快速入门
  • 仓库发货打包以及建议年终总结
  • ps如何进行像素修复
  • 库存盘点差异会计分录
  • 扶贫资金入股问题
  • 资产负债表中的货币资金怎么算
  • 智能手机登陆信息怎么删除
  • mongodb中的objectid
  • 劳务报酬所得项目
  • 销货退回的账务如何处理
  • 什么是金融资产和金融负债
  • 合并报表两种方法
  • 银行承兑汇票到期日后多久可以承兑
  • 现金日记账的结账方法
  • 长期待摊费用如何评估
  • 电商行业的采购
  • 一般纳税人车辆租赁费的税率是多少
  • 税前扣除怎么理解
  • 转账支票的密码需要填写吗
  • 发票开错了记账凭证如何做?
  • 子公司的亏损能算到母公司吗
  • 年底所得税的会计分录
  • 建筑会计账务
  • MySQL-tpch 测试工具简要手册
  • dos命令win10
  • sql server 获取今天的数据
  • sqlserver数据完整性
  • ubuntu server gui
  • windows自带的
  • gnu linux编程指南
  • 虚拟机打开提示物理内存不足
  • win7系统开机黑屏
  • win7删除未识别的网络
  • linux怎么管理进程
  • mobile window
  • win8系统盘清理
  • jQuery实现checkbox即点即改批量删除及中间遇到的坑
  • jquery实战
  • javascript entries
  • javascript代码规范
  • js点击代码
  • 全面解析俄乌武器对比
  • 江苏国税电子税局
  • 转让专利权取得的所得属于财产转让所得吗
  • 汽车维修费税率是13还是6
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设