转自:http://cjhworld.blog.163.com/blog/static/207078036201331510141222/

数学函数:

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-v2.y);

ccpNeg(v) // 等价 ccp(-v.x, -v.y);

ccpMult(v, s); //等价 ccp(v.x * s, v.y * s); s是个浮点数

取中点:

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

点乘、叉乘、投影:

ccpDot(v1, v2); // 等价 v1.x * v2.x + v1.y * v2.y;

ccpCross(v1, v2); // 等价 v1.x * v2.y - v1.y * v2.x;

ccpProject(v1, v2) // 返回的是向量v1在向量v2上的投影向量

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

ccpLength(v) // 返回向量v的长度,即点v到原点的距离

ccpLengthSQ(v) // 返回向量v的长度的平方,即点v到原点的距离的平方

ccpDistance(v1, v2) // 返回点v1到点v2的距离

ccpDistanceSQ(v1, v2) // 返回点v1到点v2的距离的平方

ccpNormalize(v) // 返回v的标准化向量,就是长度为1

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

ccpRotate(v1, v2); // 向量v1旋转过向量v2的角度并且乘上向量v2的长度。当v2是一个长度为1的标准向量时就是正常的旋转了,可以配套地用ccpForAngle

ccpPerp(v); // 等价于 ccp(-v.y, v.x); (因为opengl坐标系是左下角为原点,所以向量v是逆时针旋转90度)

ccpRPerp(v); // 等价于 ccp(v.y, -v.x); 顺时针旋转90度

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

ccpForAngle(a); // 返回一个角度为弧度a的标准向量

ccpToAngle(v); // 返回向量v的弧度 

ccpAngle(a, b); // 返回a,b向量指示角度的差的弧度值

ccpRotateByAngle(v, pivot, angle) // 返回向量v以pivot为旋转轴点,按逆时针方向旋转angle弧度

线段相交的检测:

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

其他有用的:

CC_RADIANS_TO_DEGREES(a);  // 弧度转角度

CC_DEGREES_TO_RADIANS(a);  // 角度转弧度

CCRANDOM_0_1();     // 产生0到1之间的随机浮点数

CCRANDOM_MINUS1_1(); // 产生-1到1之间的随机浮点数

cocos2d-x 基本数学的更多相关文章

  1. Cocos2d坐标系转换

    Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系(高中数学里面那种). 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右 ...

  2. 【转】频点CTO张成:基于Cocos2d的MMORPG开发经验

    http://www.9ria.com/plus/view.php?aid=27698 作者: zhiyuanzhe3 发表时间: 2013-06-29 17:46 6月29日,由9Tech社区.51 ...

  3. cocos2d 高仿doodle jump 无源代码

    1. 游戏视频 主角眼熟吗?没错,上次跑酷游戏中的"30"来Jump了,有三种道具.主角光环,竹蜻蜓.翅膀: 有两种怪物,螃蟹和鸟: 有5种板子.点击屏幕,30会把它的嘴巴3给发射 ...

  4. cocos2d.js

    1.节点是Cocos2d最基础的东西 2.坐标与普通数学坐标一致 3.children属性表示节点的孩子,父节点位置变化,它包含的子节点也会跟着变化,以整体的形势移动 4.层(layer), 新建层: ...

  5. cocos2d 走动椭圆

    1.效果图 艺术与规划说他想与我合作在全国率先主角光环加,椭圆形走动. cocos2d自带没有,參考网上的写了一个. 2.椭圆数学知识 有关椭圆的数学知识我已经忘光了.网上找了点资料: a是椭圆的长半 ...

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

    最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码.cocos2d-x还是一套比较方便的api的,什么action啊.director啊.ccpoint啊都蛮便捷的 ...

  7. cocos2d 判断旋转矩形是否包含某个点

    本来想画个图演示一下,但是折腾了一会发现画不好,我的win10系统没有安装office,以后再看的话再补上吧.不废话了. 如图所以,如果判断点P是否被矩形A所包含,非常容易.那么如果矩形A以中心点逆时 ...

  8. Cocos2D iOS之旅:如何写一个敲地鼠游戏(五):设置背景

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

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

    原帖地址:http://www.cnblogs.com/buaashine/archive/2012/11/12/2765691.html 1.注意这是cocos2d-x中的函数,但大体上和cocos ...

  10. 数学思想:为何我们把 x²读作x平方

    要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...

随机推荐

  1. WinAPI——SetWindowsHookEx设置钩子说明

    提示: 如果要设置系统级钩子, 钩子函数必须在 DLL 中. SetWindowsHookEx(   idHook: Integer;  {钩子类型}   lpfn: TFNHookProc; {函数 ...

  2. SCOI2009生日快乐

    竟然是搜索……囧 还以为是什么神题…… uses math; var x,y:extended; n:longint; function find(x,y:extended;z:longint):ex ...

  3. HDU 5280 Senior's Array (暴力,水)

    题意:给一个数列,再给一个数字p,要求p一定要替换掉数列中的一个元素,然后求最大连续子序列之和. 思路:1000*1000的复杂度,O(n*n) .就是每个都试,然后求和. #include < ...

  4. CSS sprite 圆角——源代码

    所需图片:                                                                                         corner ...

  5. 【转】angular学习笔记(十四)-$watch(1)

    本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...

  6. git提交小结

    git有工作区和暂存区的概念,工作区就是可以看到文件目录的地方,暂存区则是提交代码的地方 第一步,进入文件工作目录,终端输入命令 $ dir1/dir2: 第二步,查看哪些文件已经修改,输入命令 $ ...

  7. NET下RabbitMQ实践[配置篇]

    这个系列目前计划写四篇,分别是配置,示例,WCF发布,实战.当然不排除加餐情况.  介绍: rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Publi ...

  8. NET下RabbitMQ实践[WCF发布篇]

    在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布.          注:因为RabbitMQ的官方.net ...

  9. unix network programming(3rd)Vol.1 [第2~5章]《读书笔记系列》

    13~22章 重要 第2章 传输层: TCP/ UDP / STCP (Stream Control Transmission Protocol) TCP 可靠,有重传机制,SYN队列号 UDP 不可 ...

  10. HDU 1075-What Are You Talking About(Trie)

    题意: 给你一个字典 一个英文单词对应一个火星单词 给你一段火星文翻译成英文 字典上的没有的不翻译 分析: 没有给数据规模 字典树用链表 #include <map> #include & ...