2019独角兽企业重金招聘Python工程师标准>>>

对象定义、常量和构造函数

定义:

cp.Vect = function(x, y){this.x = x;this.y = y;
}

零向量常量:

cp.vzero  = cp.v(0,0);

创建新结构体所用的便捷构造函数:

cp.v(x, y)

操作运算

v, v1, v2均为cp.Vect, s,t,d,dist为float

  • cp.Bool cp.v.eql(v1,  v2) – 检测两个向量是否相等。在使用C++程序时,Chipmunk提供一个重载操作符==。(比较浮点数时要小心!)

  • cp.Vect cp.v.add(v1, v2) – 两个向量相加。在使用C++程序时,Chipmunk提供一个重载操作符+

  • cp.Vect cp.v.sub(v1, v2) – 两个向量相减。在使用C++程序时,Chipmunk提供一个重载操作符-

  • cp.Vect cp.v.neg(v) – 使一个向量反向。在使用C++程序时,Chipmunk提供一个重载一个一元负操作符-

  • cp.Vect cp.v.mult(v, s) – 标量乘法。在使用C++程序时,Chipmunk提供一个重载操作符*

  • cp.Float cp.v.dot(v1, v2) – 向量的点积。

  • cp.Float cp.v.cross(v1, v2) – 2D向量交叉相乘的模。2D向量交叉相乘的积作为一个只有z坐标的3D向量的z值。函数返回z坐标的值。

  • cp.Vect cp.v.perp(v) – 返回一个垂直向量。(旋转90度)

  • cp.Vect cp.v.rperp(v) – 返回一个垂直向量。(旋转-90度)

  • cp.Vect cp.v.project(v1, v2) – 返回向量v1在向量v2上的投影。

  • cp.Vect cp.v.rotate(v1, v2) – 使用复杂的乘法运算将向量v1按照向量v2旋转。如果v1不是单位向量,则v1会被缩放。

  • cp.Vect cp.v.unrotate(v1, v2) – 和cpvrotate()相反。

  • cp.Float cp.v.len( v) – 返回v的长度。

  • cp.Float cp.v.lengthsq(v) – 返回v的长度的平方,如果只是比较长度的话它的速度比cpvlength()快。

  • cp.Vect cp.v.lerp(v1, v2, t) – 在v1和v2之间线性插值。

  • cp.Vect cp.v.lerpconst(v1,v2, d) – 以长度d在v1和v2之间线性插值。

  • cp.Vect cp.v.slerp(v1, v2, t) – 在v1和v2之间球形线性插值。

  • cp.Vect cp.v.slerpconst(v1, v2, a) – 在v1和v2之间以不超过角a的弧度值球形线性插值。

  • cp.Vect cp.v.normalize(v) – 返回a的一个归一化副本。作为特殊例子,在调用cpvzero时返回cpvzero。

  • cp.Vect cp.v.clamp(v, len) – 将v固定到len上。

  • cp.Float cp.v.dist(v1, v2) – 返回v1和v2间的距离。

  • cp.Float cp.v.distsq(v1, v2) – 返回v1和v2间的距离的平方。如果只是比较距离的话它比cpvdist()快。

  • cp.Bool cp.v.near(v1, v2, dist) – 如果v1和v2间的距离小于dist则返回真。

  • cp.Vect cp.v.forangle(a) – 返回所给角(以弧度)单位向量。

  • cp.Float cp.v.toangle(v) – 返回v所指的角度方向的弧度。

部分测试

//cp.Vect测试
var vect1 = cp.v(2, 3);
var vect2 = cp.v(1, 1);
var vect3 = new cp.Vect(2, 3);cc.log(cp.v.eql(vect1, vect2));  //false
cc.log(cp.v.eql(vect1, vect3));  //true
cc.log(cp.v.add(vect1, vect2)); //cp.v(3, 4)

参考:

http://www.tairan.com/archives/5670

转载于:https://my.oschina.net/soarwilldo/blog/487014

cocos2d-js 中的Chipmunk矢量:cp.Vect相关推荐

  1. cocos2d - JS 物理引擎 - chipmunk

    物理引擎 - chipmunk : 生成物理世界 : 第一步 : 新建项目打开 project.json 将chipmunk模块导入 . "modules" : ["co ...

  2. cocos2d JS 中的数组拼接与排序

    1 var arrA = [];//创建三个局部变量的新数组 2 var arrB = []; 3 var arrC = []; 4 var newCards = this.MyMahjong;//创 ...

  3. c语言socket句柄函数传递,通过源码解析 Node.js 中进程间通信中的 socket 句柄传递...

    在 Node.js 中,当我们使用 child_process 模块创建子进程后,会返回一个 ChildProcess 类的实例,通过调用 ChildProcess#send(message[, se ...

  4. node js fork php,Node.js中execFile,spawn,exec和fork简介

    Node.js中execFile,spawn,exec和fork简介 Node.js子流程child_process模块提供四种不同方法执行外部应用: 所有这些都是异步,调用这些方法会返回一个对象,这 ...

  5. js中引用类型赋值(拷贝)问题

    问题来源 在js中,引用类型的变量引用的只是内存的地址信息,所以在用其给其他变量赋值时,另一个变量得到的是该内存地址,不是内存中的内容,所以在另一个变量改变某个值的时候会反映在原始变量中. 例如: v ...

  6. 在 Node.js 中操作 Redis

    在 Node.js 中操作 Redis Node.js 中可以操作 Redis 的软件包推荐列表:https://redis.io/clients#nodejs. 推荐下面两个: node-redis ...

  7. Node.js中的child_process模块详解

    本文主要给大家介绍了关于Node.js中child_process模块的相关内容,在介绍child_process模块之前,先来看一个例子. const http = require('http'); ...

  8. 项目中引入阿里巴巴矢量库(unicode)

    首先选择阿里巴巴矢量库添加到项目,下载到本地. 将下列几个文件添加到项目 在main.js中引入 import '../src/assets/scss/iconfont/iconfont.css';

  9. vue框架项目中使用阿里矢量图标库

    vue框架项目中使用阿里矢量图标库 一.打开阿里矢量图标,将需要图标加入购物车,选择下载代码 二.解压缩包,将解压缩后的 文件夹放入项目文件夹下的src/assets 1.在main.js中引入css ...

最新文章

  1. 100万人同时抢1万张火车票,极限并发带来的思考
  2. ECCV2020|超快的车道线检测,代码模型已开源
  3. 计算机主机电池,为什么电脑主机板上面有电池?很多人可能根本不知道
  4. Python标准模块—Regular Expressions
  5. Python进阶-----类的继承顺序
  6. python模拟地面网管接收数据
  7. linux 查看进程id对应的路径,Linux中怎么通过PID号找到对应的进程名及所在目录方法...
  8. MyDataSourceUtils使用ThreadLocal对象
  9. Python使用笔记总结目录
  10. 新年第一天,3000台Apache服务器宕机
  11. keil删除工程_RTT 是如何管理和构建工程的?
  12. git branch看不到分支_Git简介及基本用法
  13. 【编程实践】复杂网络的基本知识及实现
  14. 金税盘时钟异常的处理方法及处理流程
  15. python爬虫用AI技术-破解企业工商数据抓取+网络爬虫+网站数据采集+数据抓取遇到的三大问题
  16. 旧BugkuCTF—部分wp
  17. 店宝宝:双十一战线拉长,规则又复杂了吗?
  18. Apache Tez
  19. Matlab abs防抱死系统,防抱死制动系统建模
  20. C51汇编语言寻址方式,80C51单片机指令系统的7种寻址方式

热门文章

  1. 百度:这次在AI领域我要做领头羊
  2. 人工智能AI正从这五个方面改变公司
  3. SAP MM 盘点凭证上的posting block
  4. 机器学习的数学基础 - 信息论
  5. 卷积神经网络(CNN)的原理
  6. jupyter读取图片并展示的两种方法
  7. 美军认知技术发展态势
  8. 不输GPS!30颗卫星全部就位!北斗三号全球卫星导航星座部署顺利收官
  9. “脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑
  10. 任正非亲自指导下拍的视频,事关中国的未来