cocos2d-x 3.0 |
)
- 类列表 - 类索引 - 类继承关系 - 类成员
全部) 类) 命名空间) 文件) 函数) 变量) 类型定义) 枚举) 枚举值) 属性) 友元) 宏定义) 组) 页)
Public 成员函数 | 静态 Public 成员函数 | Public 属性 | 静态 Public 属性 | 所有成员列表
Vec2类 参考
定义一个2维浮点向量 更多…
#include
## Public 成员函数 | |
Vec2 () | |
构造一个新向量初始值为0. 更多… | |
Vec2 (float xx, float yy) | |
用指定x,y值构造一个新向量 参数xx是x的值,参数yy是y的值 更多… | |
Vec2 (const float array) | |
用指定array构造一个新的向量,array依序包含x、y的值。 更多… | |
Vec2 (const Vec2 &p1, const Vec2 &p2) | |
构造方向由点p1指向点p2的向量 更多… | |
Vec2 (const Vec2 ©) | |
构造一个新向量,从一个指定向量获取值 更多… | |
~Vec2 () | |
虚构函数 更多… | |
bool | isZero () const |
向量值是否为0 更多… | |
bool | isOne () const |
向量的x、y值是否均为1.0f 更多… | |
void | add (const Vec2 &v) |
向量加法,加上v向量的值 更多… | |
void | clamp (const Vec2 &min, const Vec2 &max) |
将向量值限制在指定的[min,max]区间内 更多… | |
float | distance (const Vec2 &v) const |
返回本向量到向量v的距离 更多… | |
float | distanceSquared (const Vec2 &v) const |
返回本向量到向量v的距离的平方值 更多… | |
float | dot (const Vec2 &v) const |
返回本向量与指定向量v的点积 更多… | |
float | length () const |
计算向量的长度并返回 更多… | |
float | lengthSquared () const |
计算向量长度的平方并返回 更多… | |
void | negate () |
向量求负 更多… | |
void | normalize () |
求向量的标准化向量 更多… | |
Vec2 | getNormalized () const |
标准化这个向量并将结果保存在dst中 更多… | |
void | scale (float scalar) |
用指定的放缩系数对向量的各分量进行放缩 更多… | |
void | scale (const Vec2 &scale) |
用scale向量的x分量来放缩本向量的x分量,用scale向量的y分量来放缩本向量的y分量。 更多… | |
void | rotate (const Vec2 &point, float angle) |
向量绕指定点point旋转angle度,其中angle的单位为弧度。 更多… | |
void | set (float xx, float yy) |
设置向量的x分量值为xx,y分量值为yy。 更多… | |
void | set (const float array) |
给定array序列,依序设置向量各分量的值。 更多… | |
void | set (const Vec2 &v) |
将指定向量v的值赋给本向量 更多… | |
void | set (const Vec2 &p1, const Vec2 &p2) |
得到p1指向p2的一个有向向量 更多… | |
void | subtract (const Vec2 &v) |
本向量减去向量v 更多… | |
void | smooth (const Vec2 &target, float elapsedTime, float responseTime) |
平滑更新向量的当前位置,指向目标向量target responseTime定义了平滑时间量,该值越大结果越平滑, 相应的延迟时间越长。如果希望向量紧跟target向量, 提供一个相对elapsedTime小很多的responseTime值即可。 更多… | |
const Vec2 | operator+ (const Vec2 &v) const |
向量加法,求向量与给定向量v的和 更多… | |
Vec2 & | operator+= (const Vec2 &v) |
向量加法,求向量与给定向量v的和,将结果保存在该向量中,并返回。 更多… | |
const Vec2 | operator- (const Vec2 &v) const |
向量减法,求向量与给定向量v的差 注意:这个减法并不改变原向量的值,返回值单独保存 更多… | |
Vec2 & | operator-= (const Vec2 &v) |
向量减法,求向量与给定向量v的差,将结果保存在该向量中,并返回。 更多… | |
const Vec2 | operator- () const |
求反向量 注意:这个方法并不改变原向量的值,返回值单独保存 更多… | |
const Vec2 | operator* (float s) const |
向量乘法,给定浮点数s,求向量各分量分别乘以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。 更多… | |
Vec2 & | operator*= (float s) |
向量乘法,给定浮点数s,求向量各分量分别乘以s后的值,将所得结果保存在原向量中。 更多… | |
const Vec2 | operator/ (float s) const |
向量除法,给定浮点数s,求向量各分量分别除以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。 更多… | |
bool | operator< (const Vec2 &v) const |
判断该向量是否小于给定向量v,如果小于则返回true,否则返回false。 更多… | |
bool | operator== (const Vec2 &v) const |
判断该向量是否等于给定向量v,如果等于则返回True,否则返回false。 更多… | |
bool | operator!= (const Vec2 &v) const |
判断该向量是否不等于给定向量v,如果不等则返回True,否则返回False。 更多… | |
void | setPoint (float xx, float yy) |
NA NA 更多… | |
bool | equals (const Vec2 &target) const |
NA 更多… | |
bool | fuzzyEquals (const Vec2 &target, float variance) const |
float | getLength () const |
计算点到原点的距离,返回一个浮点数 更多… | |
float | getLengthSq () const |
计算该向量长度的平方,不调用sqrt(). 更多… | |
float | getDistanceSq (const Vec2 &other) const |
计算到另一个向量的长度的平方,不调用sqrt(). 更多… | |
float | getDistance (const Vec2 &other) const |
计算两点之间的距离 更多… | |
float | getAngle () const |
float | getAngle (const Vec2 &other) const |
float | cross (const Vec2 &other) const |
计算两个二维向量的叉乘 更多… | |
Vec2 | getPerp () const |
计算v逆时针旋转90度的垂线–cross(v,perp(v))>=0 更多… | |
Vec2 | getMidpoint (const Vec2 &other) const |
用向量计算两点间的中点 更多… | |
Vec2 | getClampPoint (const Vec2 &min_inclusive, const Vec2 &max_inclusive) const |
将一个点限制在min_inclusive和max_inclusive之间,返回该点的二维向量形式 更多… | |
Vec2 | compOp (std::function< float(float)> function) const |
对该点向量形式的各分量进行function参数来指定的运算, 如absf,floorf,ceilf,roundf等, 任何函数拥有如下形式:float func(float)均可。 例如:我们对x,y进行floor运算,则调用方法为p.compOp(floorf); 更多… | |
Vec2 | getRPerp () const |
计算向量v顺时针旋转90度后的值—cross(v,rperp(v))<=0 更多… | |
Vec2 | project (const Vec2 &other) const |
计算该向量在另一向量other上的投影。 更多… | |
Vec2 | rotate (const Vec2 &other) const |
绕other向量旋转。 返回向量的角度为this.getAngle()+other.getAngle(), 长度为this.getLength()other.getLength() 更多… | |
Vec2 | unrotate (const Vec2 &other) const |
绕other向量旋转前的向量值 返回向量的角度为this.getAngle()-other.getAngle(), 长度为this.getLength()other.getLength(). 更多… | |
Vec2 | lerp (const Vec2 &other, float alpha) const |
两个点a和b之间的线性插值 更多… | |
Vec2 | rotateByAngle (const Vec2 &pivot, float angle) const |
以pivot为轴逆时针旋转angle度(单位为弧度),返回结果向量 更多… | |
## 静态 Public 成员函数 | |
static float | angle (const Vec2 &v1, const Vec2 &v2) |
返回两个向量之间的角度(用弧度表示) 更多… | |
static void | add (const Vec2 &v1, const Vec2 &v2, Vec2 dst) |
向量v1和v2相加,将结果保存在dst中 更多… | |
static void | clamp (const Vec2 &v, const Vec2 &min, const Vec2 &max, Vec2 dst) |
将指定向量v限制在[min,max]区间内,并用dst保存结果。 更多… | |
static float | dot (const Vec2 &v1, const Vec2 &v2) |
返回向量v1和v2的点积 更多… | |
static void | subtract (const Vec2 &v1, const Vec2 &v2, Vec2 dst) |
向量v1减去v2,把结果保存在dst中 更多… | |
static Vec2 | forAngle (const float a) |
NA NA 更多… | |
static bool | isLineIntersect (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D, float S=nullptr, float T=nullptr) |
一个通用的线段相交检测 更多… | |
static bool | isLineOverlap (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D) |
如果直线AB与线段CD重叠,返回True。 更多… | |
static bool | isLineParallel (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D) |
如果直线AB与线段CD平行,返回True。 更多… | |
static bool | isSegmentOverlap (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D, Vec2 S=nullptr, Vec2 *E=nullptr) |
如果线段AB与线段CD重叠,返回True。 更多… | |
static bool | isSegmentIntersect (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D) |
如果线段AB与线段CD交叉,返回True。 更多… | |
static Vec2 | getIntersectPoint (const Vec2 &A, const Vec2 &B, const Vec2 &C, const Vec2 &D) |
返回直线AB,CD的交叉点。 更多… | |
## Public 属性 | |
float | x |
向量的x值 更多… | |
float | y |
向量的y值 更多… | |
## 静态 Public 属性 | |
static const Vec2 | ZERO |
等于 Vec2(0,0) 更多… | |
static const Vec2 | ONE |
等于 Vec2(1,1) 更多… | |
static const Vec2 | UNIT_X |
等于 Vec2(1,0) 更多… | |
static const Vec2 | UNIT_Y |
等于 Vec2(0,1) 更多… | |
static const Vec2 | ANCHOR_MIDDLE |
等于 Vec2(0.5, 0.5) 更多… | |
static const Vec2 | ANCHOR_BOTTOM_LEFT |
等于 Vec2(0, 0) 更多… | |
static const Vec2 | ANCHOR_TOP_LEFT |
等于 Vec2(0, 1) 更多… | |
static const Vec2 | ANCHOR_BOTTOM_RIGHT |
等于 Vec2(1, 0) 更多… | |
static const Vec2 | ANCHOR_TOP_RIGHT |
等于 Vec2(1, 1) 更多… | |
static const Vec2 | ANCHOR_MIDDLE_RIGHT |
等于 Vec2(1, 0.5) 更多… | |
static const Vec2 | ANCHOR_MIDDLE_LEFT |
等于 Vec2(0, 0.5) 更多… | |
static const Vec2 | ANCHOR_MIDDLE_TOP |
等于 Vec2(0.5, 1) 更多… | |
static const Vec2 | ANCHOR_MIDDLE_BOTTOM |
等于 Vec2(0.5, 0) 更多… | |
详细描述
定义一个2维浮点向量
构造及析构函数说明
Vec2 | ( | ) |
构造一个新向量初始值为0.
Vec2 | ( | float | xx, |
float | yy | ||
) |
用指定x,y值构造一个新向量 参数xx是x的值,参数yy是y的值
- 参数
xxx坐标 yyy坐标
Vec2 | ( | const float * | array | ) |
用指定array构造一个新的向量,array依序包含x、y的值。
- 参数
array包含x,y坐标向量的数组。
Vec2 | ( | const Vec2 & | p1, |
const Vec2 & | p2 | ||
) |
构造方向由点p1指向点p2的向量
- 参数
p1第一个点 p2第二个点
Vec2 | ( | const Vec2 & | copy | ) |
构造一个新向量,从一个指定向量获取值
- 参数
copy将被拷贝的向量
~Vec2 | ( | ) |
虚构函数
成员函数说明
void add | ( | const Vec2 & | v | ) |
向量加法,加上v向量的值
- 参数
v将被添加的向量
| static |
向量v1和v2相加,将结果保存在dst中
- 参数
v1第一向量 v2第二向量 dst相加的结果
| static |
返回两个向量之间的角度(用弧度表示)
- 参数
v1第一个向量 v2第二个向量
- 返回
- 夹角弧度
void clamp | ( | const Vec2 & | min, |
const Vec2 & | max | ||
) |
将向量值限制在指定的[min,max]区间内
- 参数
min最小值 max最大值
| static |
将指定向量v限制在[min,max]区间内,并用dst保存结果。
- 参数
v将被限定的向量 min最小值 max最大值 dst结果
| inline |
对该点向量形式的各分量进行function参数来指定的运算, 如absf,floorf,ceilf,roundf等, 任何函数拥有如下形式:float func(float)均可。 例如:我们对x,y进行floor运算,则调用方法为p.compOp(floorf);
- 自从
- v3.0 NA NA
| inline |
计算两个二维向量的叉乘
- 返回
- float
- 自从
- v2.1.4 NA NA
float distance | ( | const Vec2 & | v | ) | const |
返回本向量到向量v的距离
- 参数
v另一个向量
float distanceSquared | ( | const Vec2 & | v | ) | const |
返回本向量到向量v的距离的平方值
如果不需要得到两个向量之间的准确距离, 例如只是比较不同向量之间的距离大小的时候, 建议使用这个方法来代替distance(const Vec2& v)方法
- 参数
v另一个向量
- 参见
- distance
float dot | ( | const Vec2 & | v | ) | const |
返回本向量与指定向量v的点积
- 参数
v用来计算点积的另一个向量
| static |
返回向量v1和v2的点积
- 参数
v1第一个向量 v2第二个向量
bool equals | ( | const Vec2 & | target | ) | const |
NA
| inlinestatic |
NA NA
bool fuzzyEquals | ( | const Vec2 & | target, |
float | variance | ||
) | const |
- 返回
- 如果点有fuzzy equality意味着与某种方差是相等的
- 自从
- v2.1.4 NA NA
| inline |
- 返回
- 返回向量与x轴夹角,单位是弧度。
- 自从
- v2.1.4 NA NA
float getAngle | ( | const Vec2 & | other | ) | const |
- 返回
- 返回两个向量的夹角,单位是弧度。
- 自从
- v2.1.4 NA NA
| inline |
将一个点限制在min_inclusive和max_inclusive之间,返回该点的二维向量形式
- 自从
- v3.0 NA NA
| inline |
计算两点之间的距离
- 返回
- float
- 自从
- v2.1.4 NA NA
| inline |
计算到另一个向量的长度的平方,不调用sqrt().
- 返回
- float
- 自从
- v2.1.4 NA NA
| static |
返回直线AB,CD的交叉点。
- 自从
- v3.0 NA NA
| inline |
计算点到原点的距离,返回一个浮点数
- 返回
- float
- 自从
- v2.1.4 NA NA
| inline |
计算该向量长度的平方,不调用sqrt().
- 返回
- float
- 自从
- v2.1.4 NA NA
| inline |
用向量计算两点间的中点
- 返回
- Vec2
- 自从
- v3.0 NA NA
Vec2 getNormalized | ( | ) | const |
标准化这个向量并将结果保存在dst中
如果向量已经是单位长度或者长度为零, 这个方法将简单的把当前向量值拷贝到dst中。
| inline |
计算v逆时针旋转90度的垂线–cross(v,perp(v))>=0
- 返回
- Vec2
- 自从
- v2.1.4 NA NA
| inline |
计算向量v顺时针旋转90度后的值—cross(v,rperp(v))<=0
- 返回
- Vec2
- 自从
- v2.1.4 NA NA
| static |
一个通用的线段相交检测
- 参数
A为线段L1起点 L1 = (A - B) B为L1终点 L1 = (A - B) C为线段L2起点 L2 = (C - D) D为L2终点 L2 = (C - D) S为L1上计算各点的插值参数,计算方法为:p = A + S(B - A) T为L2上计算各点的插值参数,计算方法为:p = C + T(D - C)
- 返回
- whether these two lines interects.
注意要准确测试出线段是否相交我们需要确保S&T的值在[0..1]区间范围内
- 自从
- 3.0 NA NA
| static |
如果直线AB与线段CD重叠,返回True。
- 自从
- v3.0 NA NA
| static |
如果直线AB与线段CD平行,返回True。
- 自从
- v3.0 NA NA
bool isOne | ( | ) | const |
向量的x、y值是否均为1.0f
- 返回
- 如果x、y均为1.0f,则返回true,否则返回false。
| static |
如果线段AB与线段CD交叉,返回True。
- 自从
- v3.0 NA NA
| static |
如果线段AB与线段CD重叠,返回True。
- 自从
- v3.0 NA NA
bool isZero | ( | ) | const |
向量值是否为0
- 返回
- 如果为0则返回true,否则返回false
float length | ( | ) | const |
计算向量的长度并返回
float lengthSquared | ( | ) | const |
计算向量长度的平方并返回
当不需要获取准确的向量长度时, 例如只是简单比较不同向量之间的长度大小, 可以使用本方法代替length()
- 参见
- length
| inline |
两个点a和b之间的线性插值
- 返回
- alpha ==0 ? a alpha ==1 ? b 否则为a和b之间的一个值
- 自从
- v2.1.4 NA NA
void negate | ( | ) |
向量求负
void normalize | ( | ) |
求向量的标准化向量
这个方法标准化一个Vec2向量为单位长度 (调用这个方法后向量长度为1.0f)。 如果向量已经是单位长度或者长度为零, 这个方法不起任何作用。
| inline |
判断该向量是否不等于给定向量v,如果不等则返回True,否则返回False。
| inline |
向量乘法,给定浮点数s,求向量各分量分别乘以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。
- 参数
s缩放因子
| inline |
向量乘法,给定浮点数s,求向量各分量分别乘以s后的值,将所得结果保存在原向量中。
- 参数
s缩放因子.
| inline |
向量加法,求向量与给定向量v的和
注意:这个加法并不改变原向量的值,返回值单独保存
- 参数
v被加的向量
| inline |
向量加法,求向量与给定向量v的和,将结果保存在该向量中,并返回。
- 参数
v被加的向量
| inline |
向量减法,求向量与给定向量v的差 注意:这个减法并不改变原向量的值,返回值单独保存
- 参数
v被加的向量
| inline |
求反向量 注意:这个方法并不改变原向量的值,返回值单独保存
| inline |
向量减法,求向量与给定向量v的差,将结果保存在该向量中,并返回。
- 参数
v减的向量
| inline |
向量除法,给定浮点数s,求向量各分量分别除以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。
| inline |
判断该向量是否小于给定向量v,如果小于则返回true,否则返回false。
| inline |
判断该向量是否等于给定向量v,如果等于则返回True,否则返回false。
| inline |
计算该向量在另一向量other上的投影。
- 返回
- Vec2
- 自从
- v2.1.4 NA NA
void rotate | ( | const Vec2 & | point, |
float | angle | ||
) |
向量绕指定点point旋转angle度,其中angle的单位为弧度。
- 参数
point旋转锚点 angle旋转角度
| inline |
绕other向量旋转。 返回向量的角度为this.getAngle()+other.getAngle(), 长度为this.getLength()*other.getLength()
- 自从
- v2.1.4 NA NA
Vec2 rotateByAngle | ( | const Vec2 & | pivot, |
float | angle | ||
) | const |
以pivot为轴逆时针旋转angle度(单位为弧度),返回结果向量
- 自从
- v2.1.4 NA NA
void scale | ( | float | scalar | ) |
用指定的放缩系数对向量的各分量进行放缩
- 参数
scalar缩放因子
void scale | ( | const Vec2 & | scale | ) |
用scale向量的x分量来放缩本向量的x分量,用scale向量的y分量来放缩本向量的y分量。
- 参数
scale缩放因子
void set | ( | float | xx, |
float | yy | ||
) |
设置向量的x分量值为xx,y分量值为yy。
- 参数
xx新的X坐标 yy新的Y坐标
void set | ( | const float * | array | ) |
给定array序列,依序设置向量各分量的值。
- 参数
array包含x,y向量的数组
void set | ( | const Vec2 & | v | ) |
将指定向量v的值赋给本向量
- 参数
v被拷贝的向量
void set | ( | const Vec2 & | p1, |
const Vec2 & | p2 | ||
) |
得到p1指向p2的一个有向向量
- 参数
p1第一个点 p2第二个点
void setPoint | ( | float | xx, |
float | yy | ||
) |
NA NA
void smooth | ( | const Vec2 & | target, |
float | elapsedTime, | ||
float | responseTime | ||
) |
平滑更新向量的当前位置,指向目标向量target responseTime定义了平滑时间量,该值越大结果越平滑, 相应的延迟时间越长。如果希望向量紧跟target向量, 提供一个相对elapsedTime小很多的responseTime值即可。
- 参数
target目标值 elapsedTime消逝时间 responseTime响应时间
void subtract | ( | const Vec2 & | v | ) |
本向量减去向量v
| static |
向量v1减去v2,把结果保存在dst中
- 参数
v1第一向量 v2第二向量 dst结果
| inline |
绕other向量旋转前的向量值 返回向量的角度为this.getAngle()-other.getAngle(), 长度为this.getLength()*other.getLength().
(这里是不是有点问题,难道不应该是this.getLength()/other.getLength()么?)
- 自从
- v2.1.4 NA NA
类成员变量说明
| static |
等于 Vec2(0, 0)
| static |
等于 Vec2(1, 0)
| static |
等于 Vec2(0.5, 0.5)
| static |
等于 Vec2(0.5, 0)
| static |
等于 Vec2(0, 0.5)
| static |
等于 Vec2(1, 0.5)
| static |
等于 Vec2(0.5, 1)
| static |
等于 Vec2(0, 1)
| static |
等于 Vec2(1, 1)
| static |
等于 Vec2(1,1)
| static |
等于 Vec2(1,0)
| static |
等于 Vec2(0,1)
float x |
向量的x值
float y |
向量的y值
| static |
等于 Vec2(0,0)
该类的文档由以下文件生成:
- /Users/zeroyang/Documents/github/cocos2d-x/cocos/math/Vector2.h
- Vec2
- 生成于 2014年 五月 29日 星期四 09:41:43 , 为 cocos2d-x使用 1.8.6