cocos2d-x 中的一些数学函数

改写cocos2d的ProgressTimer,实现任意起始点的Radial进度条 就是根据起点向量和旋转到某个角度后的终点向量,和旋转过程中经过的矩形顶点,把这些点连接成一个个相邻的三角形,用纹理颜色绘制这些三角形即可。 阅读详情

转自:http://mobile.51cto.com/aprogram-389740.htm


  1. ccp(x, y); // 以坐标x,y创建一个向量 
  2. ccpFromSize(s); // 以size s的width为x,height为y创建一个向量   

CCPoint的加减乘除运算运算

  1. ccpAdd(v1, v2); // 等价 ccp(v1.x+v2.x, v1.y+v2.y);   
  2. ccpSub(v1, v2); // 等价 ccp(v1.x-v2.x, v1.y-v2.y);   
  3. ccpNeg(v) // 等价 ccp(-v.x, -v.y);   
  4. ccpMult(v, s); //等价 ccp(v.x * s, v.y * s); s是个浮点数 

取中点:

  1. ccpMidpoint(v1, v2); // 等价 ccp( (v1.x + v2.x)/2, (v1.y + v2.y)/2 );   

点乘、叉乘、投影:

  1. ccpDot(v1, v2); // 等价 v1.x * v2.x + v1.y * v2.y;   
  2. ccpCross(v1, v2); // 等价 v1.x * v2.y - v1.y * v2.x;   
  3. ccpProject(v1, v2) // 返回的是向量v1在向量v2上的投影向量  

求长度、距离和各自的平方值:

  1. ccpLength(v) // 返回向量v的长度,即点v到原点的距离   
  2. ccpLengthSQ(v) // 返回向量v的长度的平方,即点v到原点的距离的平方   
  3. ccpDistance(v1, v2) // 返回点v1到点v2的距离   
  4. ccpDistanceSQ(v1, v2) // 返回点v1到点v2的距离的平方   
  5. ccpNormalize(v) // 返回v的标准化向量,就是长度为1 

旋转、逆时针90度、顺时针90度:

  1. ccpRotate(v1, v2); // 向量v1旋转过向量v2的角度并且乘上向量v2的长度。当v2是一个长度为1的标准向量时就是正常的旋转了,可以配套地用ccpForAngle   
  2. ccpPerp(v); // 等价于 ccp(-v.y, v.x); (因为opengl坐标系是左下角为原点,所以向量v是逆时针旋转90度)   
  3. ccpRPerp(v); // 等价于 ccp(v.y, -v.x); 顺时针旋转90度  

配套的有向量和弧度的转换向量,还有一些角度相关的:

  1. ccpForAngle(a); // 返回一个角度为弧度a的标准向量   
  2. ccpToAngle(v); // 返回向量v的弧度    
  3. ccpAngle(a, b); // 返回a,b向量指示角度的差的弧度值   
  4. ccpRotateByAngle(v, pivot, angle) // 返回向量v以pivot为旋转轴点,按逆时针方向旋转angle弧度 

线段相交的检测:

  1. ccpLineIntersect(p1, p2, p3, p4, &s, &t); // 返回p1为起点p2为终点线段1所在直线和p3为起点p4为终点线段2所在的直线是否相交,如果相交,参数s和t将返回交点在线段1、线段2上的比例   
  2. // 得到s和t可以通过 p1 + s * (p2 - p1) 或 p3 + t * (p4 - p3) 求得交点。   
  3. ccpSegmentIntersect(A, B C, D) // 返回线段A-B和线段C-D是否相交   
  4. ccpIntersectPoint(A, B, C, D) // 返回线段A-B和线段C-D的交点  

其他有用的:

  1. CC_RADIANS_TO_DEGREES(a);  // 弧度转角度   
  2. CC_DEGREES_TO_RADIANS(a);  // 角度转弧度   
  3. CCRANDOM_0_1();     // 产生0到1之间的随机浮点数   
  4. CCRANDOM_MINUS1_1(); // 产生-1到1之间的随机浮点数   
基于STC8A8K64S4A12的掉电唤醒定时器应用,极大降低产品功耗 通过合理的配置和编程,我们可以充分发挥单片机的功能,实现能效优化和电池寿命延长的目标。其中,掉电唤醒定时器是其一项重要功能,可以在系统处于睡眠状态时通过定时器的计时功能进行唤醒,从而实现对系统功耗的有效控制。使用STC8A8K64S4A12的掉电唤醒定时器功能,我们可以在不影响系统正常工作的情况下,大大降低产品的功耗。通过以上的代码,我们实现了一个简单的掉电唤醒定时器功能。当系统进入睡眠模式后,定时器开始计时,到达预设的唤醒时间后,定时器中断被触发,系统从睡眠模式唤醒,执行相应的操作。 阅读详情

相关推荐

ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。 我们使用ITK-snap作为分割标注工具。 当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

u010409517的博客 2万+

cocos2d中要用到的数学函数

做游戏开发,要用到比较多的数学计算,cocos2d-x提供了很多方便的的数学函数,方便我们的数学计算。 以下是在网上收集到的一些常用的数学方法,分享给大家! //数学函数 ccp(x, y); // 以坐标x,y创建一个向量  ccpFromSize(s); // 以size s的width为x,height为y创建一个向量 CCPoint的加减乘除运算运算 ccpAdd(v1, v2

Kamy Shi 1183

【STM32开源实战】基于STM32的智能输液监控系统设计与实现

本文详细介绍了基于STM32F103C8T6主控芯片的智能输液监控系统设计与实现。该系统通过光学液位传感器、温度传感器和红外滴速检测模块实时监测输液状态,利用步进电机自动调节滴速,并通过蓝牙实现数据远程传输,为医院提供了一套低成本、高可靠性的智能输液解决方案。

h6i7j8的博客 761

cocos计算两个坐标间的距离

let j = v2 ( a.x - b.x, a.y - b.y )let dis = Math.sqrt ( j.x * j.x + j.y * j.y )

weixin_45514287的博客 867

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 980

【SoloPi】SoloPi使用2-功能使用,录制回放

Soloπ是什么 Soloπ是一个无线化、非侵入式的Android自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。 录制回放功能 Soloπ拥有录制操作的能力,用户只需要通过Soloπ执行用例步骤,Soloπ就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。 ...

q_Catherine的博客 5826

计算 两个坐标计算距离

【代码】计算 两个坐标计算距离。

qq_34811513的博客 711

告别浏览器崩溃!EasyPlayer.js长时间播放FLV视频内存泄漏排查指南

本文针对EasyPlayer.js长时间播放FLV视频导致浏览器内存泄漏和崩溃的问题,提供了一套系统性排查与解决方案。核心策略包括将视频编码从H.265转为H.264以降低解码压力,以及将传输协议从HTTP-FLV切换至WebRTC以优化资源管理。文章还详细介绍了播放器实例生命周期管理、浏览器开发者工具监控等精细化排查手段,帮助开发者实现稳定、长时间的多路视频播放。

weixin_29229055的博客 170

实现Cocos2d-x追踪子弹

需求 追踪子弹是游戏中的一个相当重要的精灵。子弹追踪的实现本质上是要实时调整子弹的线速度和角速度,使其不断地照着接近目标的方向移动。 分析 子弹速度分为两类,一个线速度,一个是角速度。所谓追踪,就是在子弹更新的每一帧中,动态计算子弹和目标之间的位置关系,然后更新子弹当前的线速度,和把子弹本身绕着自己的中心点旋转一个角度,使子弹朝向和子弹速度方向一致。 这里我们的子弹每帧的旋

流彩飞霞的专栏 4497

基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab

其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。

学习使你进步。 1128

手把手教你学GPU的KMD专栏--3.1 设备初始化流程深度解析

本文深入解析了KMD(内核模式驱动)设备初始化流程,这是GPU驱动开发最基础且关键的环节。初始化流程包括6个核心阶段:KMD模块加载、PCIe设备探测匹配、GPU硬件初始化、显存分配映射、中断系统配置和设备注册。每个阶段都有详细步骤解析,涉及关键数据结构和错误处理机制。文章还分析了常见问题(驱动加载失败、显存分配失败、中断配置失败)的解决方案,并指出未来趋势将向动态初始化、安全增强和AI优化方向发展。正确高效的初始化流程是确保GPU被操作系统安全使用的前提,也是后续内存管理、任务调度等功能的基础。

MHD0815的博客 261

cocos2d-x:懒人数学函数

前一段时间完成了Android的一个项目之后,现在团队开始做游戏开发了。队友们经过讨论过后,十分看好cocos2d-x,于是团队又开始现学现卖了,决定做一个东西来练一下手。   在做cocos2d-x的时候,会发现一些问题。比如cocos2d-x的版本更新得太快了,网上的博文都是老版本的教程,新版本有一些方法已经废弃或者改名了,加之cocos2d-x的书籍非常少,所以入门比较麻烦。   对于这

青春的光与影 2887

【置顶】ARMv8/ARMv9架构入门到精通-[目录]

周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动 optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、V

baron-周贺贺-代码改变世界ctw 2万+

cocos2d-x懒人数学函数

cocos2d-x懒人数学函数 2013-04-16 10:02 PocoyoShamoo csdn 字号:T | T 话说做游戏开发,要用到比较多的数学计算,对于程序员来说,还是用一种懒一点的方法,cocos2d-x方便开发者投机取巧...提供了很多方便的的数学函数,方便我们的数学计算。以下是在网上收集到的一些常用的数学方法,分享给大家! AD:51CTO学院:

兴趣是最好的老师 702

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Cocos2d-x数学函数和常用宏

转载自:http://www.cnblogs.com/buaashine/archive/2012/11/12/2765691.html 1.数学类 cocos2d-x 里使用最多的数学类型是CCPoint,一个点,本质上也是一个向量,对于向量和向量之间有很多的数学操作要做,oh我知道要干什么,也许我知道怎么求一个值但是不知道怎么求得高效(或者不知道),怎么办我能偷懒吗?那当然可以。这

SharkMarine的专栏 768

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

cocos2d-x 数学函数、常用宏粗整理

cocos2d-x 数学函数、常用宏粗整理   最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数…… 用一些比较原始、低效率的方法…… 甚至是copy / paste……

我的 666

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

cocos2d-x 数学函数、常用宏粗整理 - by Glede

转自: http://www.cnblogs.com/buaashine/archive/2012/11/12/2765691.html 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede 最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action

移动开发爱好者 -- ^_^ 2277

cocos2d-x 数学函数、常用宏粗整理(CC_SYNTHESIZE)

程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede http://www.cnblogs.com/buaashine/archive/2012/11/12/2765691.html 最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、d

L的博客 336

Cocos2d-x 中常用数学函数

数学函数: ccp(x, y); // 以坐标x,y创建一个向量 ccpFromSize(s); // 以size s的width为x,height为y创建一个向量    CCPoint的加减乘除运算运算 ccpAdd(v1, v2); // 等价 ccp(v1.x+v2.x, v1.y+v2.y);   ccpSub(v1, v2); // 等价 ccp(v1.x-v2.x, v1.y-v

3027

cocos2d-x 数学函数,常用宏

最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数…… 用一些比较原始、低效率的方法…… 甚至是copy / paste…… …………。 ……。 这不科学

danming60520的专栏 624

程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede

程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede 最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数…… 用一些比较原始、低效率的方法…

u011413730的专栏 440

cocos2d-x 常用宏、数学函数

1.数学类 cocos2d-x 里使用最多的数学类型是CCPoint,一个点,本质上也是一个向量,对于向量和向量之间有很多的数学操作要做,oh我知道要干什么,也许我知道怎么求一个值但是不知道怎么求得高效(或者不知道),怎么办我能偷懒吗?那当然可以。这其实并不是一个懒的标准,因为有一些方法写多了也可能确实稍微有那么点麻烦,所以自然cocos2d提供了一套ccp系列来帮助我们完成很多的工作,也显

雨月琉琉的专栏 990
上一篇: cocos2d-x中Zorder和VertexZ属性的区别
下一篇: windows下获取文件的后缀名
骑行的蜗牛
博客等级 码龄21年 107粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值