位置: 编程技术 - 正文

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)

  • 材料费用发票的记账凭证
  • 城建税和教育费附加减免政策
  • 孳息和利息的区别
  • 销售货物收入确认条件
  • 非盈利组织企业所得税主表如何填列
  • 预付款可以抵扣进度款吗
  • 税控盘当月不抵扣怎么申报
  • 民间非营利机构加班费记什么科目
  • 过桥过闸通行费会计分录
  • 投资者回售选择权是什么意思
  • 存放中央银行款项名词解释
  • 服装企业销售方式
  • 超市里的摊位租金贵吗
  • 筹建期可以有收入吗
  • 递延资产是长期待摊费用吗
  • 公司购入长期债务怎么算
  • 个人开利息发票的税率与会计分录
  • 资产负债表最后要平吗
  • 审计人员用餐费用
  • 开票商品名称是什么意思
  • 工程开发票备注栏必需要写吗?
  • 价外费用如何开普票
  • 收到赔材料赔付款怎样做账?
  • 调整利润分配期怎么计算
  • 固定资产折旧应该考虑哪些因素
  • 工资薪金所得税扣除标准
  • 收到别人的文章或书,应该怎样表示
  • 银行定期存款账户
  • 债转股是好还是坏
  • macos big sur 电池
  • php怎么学
  • 跨平台桌面程序
  • 财务人员如何管控费用支出
  • uniapp image mode
  • 没有资质证书的公司可靠吗?
  • 金蝶 账无忧 使用说明
  • thinkphp curl
  • vue err
  • 共管账户可以转账吗
  • 卷积拆分
  • shell中put命令
  • PHP+JQuery+Ajax实现分页方法详解
  • Laravel5.1自定义500错误页面示例
  • 小规模公司卖车怎么开票
  • 高速费发票可以重开吗
  • 合同资产与应收账款的关系
  • c语言中数组怎么用
  • 二手房过户需要户口本吗
  • 旅游公司差额征税如何开票
  • 税务实名认证是法人还是办税人
  • 电子承兑对方拒绝签收多久能到账
  • 公司申请破产后员工有赔偿吗
  • sql动态执行
  • 原材料暂估入库分录
  • 所得税预缴怎么申报
  • 新准则下其他应收坏账
  • 固定资产后续支出
  • 房屋维修基金是谁交
  • 职工工伤住院期间的各项费用由谁负责
  • 房地产公司退房款怎么做账
  • 如何暂估费用会计分录
  • 专票入账用哪一联
  • 资产负债表里包括哪两个数据
  • 保险可以税前扣除吗
  • 利息专用发票可以抵扣吗
  • 企业应该设置几个安全管理人员
  • 在windows的命令提示符下,命令名在实际输入时规定
  • win10电脑版微信字体大小怎么设置方法
  • 光纤拨号方式
  • linux 消耗内存命令
  • Cocos2d-x 3.0final 终结者系列教程23CocosStudio UI组件使用大全Cocos2d-x3.2使用
  • javascript entries
  • 怎么用node.js写接口
  • android基础入门教程
  • android完整开源项目
  • 方块大作战百科
  • 使用jQuery Rotare实现微信大转盘抽奖功能
  • 微信群记账小程序
  • 福州房管局网签查询
  • 纳税人不办税务许可证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设