位置: 编程技术 - 正文

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)

  • 劳务派遣公司需要给员工缴纳社保吗
  • 企业税号还未开户
  • 处置资产开啥发票
  • 兼职是属于劳动报酬吗
  • 抵扣的发票可以部分红冲吗
  • 小汽车的增值税怎么算
  • 纳税申报 财务报表利润表
  • 单位房屋出租转投资性房地产怎么转?
  • 招待费税前扣除是什么意思
  • 补交以前年度房产税如何记账
  • 公司对外借款怎么做账
  • 纳税人签章填什么
  • 关于促进房地产市场健康发展的实施意见(试行)
  • 软件合同审核要点
  • 银行承兑 贷款
  • 社保和公积金的钱可以取出来吗
  • 全年平均职工人数按季度平均公式
  • 年底买车险会便宜吗
  • 投资资本回报率多少合适
  • window10系统有几种
  • php集成包
  • 房产税的会计科目怎么做
  • 解决肚子胀气最快方法
  • vue使用pdf.js
  • 企业研发费用加计扣除最新政策
  • 个人独资企业的特点
  • 在vue中获取dom元素
  • 会计核算方法有几种
  • 收到银联代收短信
  • 发票抵扣联和发票联区别
  • 损益表填制
  • 怎么解决食堂拥挤问题
  • 门诊收费票据能重新打印吗
  • 软件企业增值税计算
  • 简易征收3%的征收率是什么意思
  • 2022年山东省固定资产投资额
  • 废旧物资专用发票
  • 企业收到海河工厂发运的乙材料,并验收入库
  • 销售折扣购物卡对公司财务的好处
  • 医疗收费票据管理制度
  • 小规模纳税人开专票需要交税吗
  • 防洪费需要计提吗
  • 顾问费交多少税
  • 进出口货物报关单填制规范
  • 企业促销如何进行营销
  • 在建工程什么意思
  • 测试账户收入怎么处理
  • 收到保险赔款是什么意思
  • 在外地设办事处需要办什么手续
  • 普通发票和增值发票的区别在哪里
  • 暂估成本的两种形式
  • 施工企业主营业务收入二级科目有哪些
  • 商品流通企业有哪些企业
  • sql多表关联修改操作
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • mysql默认8小时自动断开
  • windowsxp的开始菜单
  • dwm占用内存过高 进程处理
  • 帮我打开双击锁屏
  • mac电脑废纸篓清空文件恢复
  • msmpeng.exe是什么进程
  • win8系统怎么更改系统语言
  • linux中nfs的配置
  • win8.1无法连接wifi
  • 怎么通过mac连接wifi
  • centos vi命令
  • window10正版系统怎么装
  • linux 卸载 mysql
  • cocos2dx在暂停某些元素后导致crash问题
  • cocos2d-x教程
  • javascript基础入门教程
  • node如何使用
  • [置顶]游戏名:chivalry2
  • html css js 实战案例
  • js浮动窗口
  • jQuery 选择同时包含两个class的元素的实现方法
  • 养殖业免税用报税吗
  • 国家税务培训信息网官网
  • 完税证明可以自己在官网打印吗
  • 公司外购设备对外投资账务处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设