cocos2d-x 3.0
- 首页 - 相关页面 - 模块 - 命名空间 - - 文件 -
Public 成员函数 - 图1 Public 成员函数 - 图2)
- 类列表 - 类索引 - 类继承关系 - 类成员

全部)) 命名空间) 文件) 函数) 变量) 类型定义) 枚举) 枚举值) 属性) 友元) 宏定义)))

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 &copy)
构造一个新向量,从一个指定向量获取值 更多…
~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 void add ( const Vec2 & v1,
const Vec2 & v2,
Vec2 * dst
)

static

向量v1和v2相加,将结果保存在dst中

  • 参数
  • v1第一向量 v2第二向量 dst相加的结果

static float angle ( const Vec2 & v1,
const Vec2 & v2
)

static

返回两个向量之间的角度(用弧度表示)

  • 参数
  • v1第一个向量 v2第二个向量

  • 返回
  • 夹角弧度

void clamp ( const Vec2 & min,
const Vec2 & max
)

将向量值限制在指定的[min,max]区间内

  • 参数
  • min最小值 max最大值

static void clamp ( const Vec2 & v,
const Vec2 & min,
const Vec2 & max,
Vec2 * dst
)

static

将指定向量v限制在[min,max]区间内,并用dst保存结果。

  • 参数
  • v将被限定的向量 min最小值 max最大值 dst结果

Vec2 compOp ( std::function< float(float)> function) const

inline

对该点向量形式的各分量进行function参数来指定的运算, 如absf,floorf,ceilf,roundf等, 任何函数拥有如下形式:float func(float)均可。 例如:我们对x,y进行floor运算,则调用方法为p.compOp(floorf);

  • 自从
  • v3.0 NA NA

float cross ( const Vec2 & other) const

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另一个向量

float dot ( const Vec2 & v) const

返回本向量与指定向量v的点积

  • 参数
  • v用来计算点积的另一个向量

static float dot ( const Vec2 & v1,
const Vec2 & v2
)

static

返回向量v1和v2的点积

  • 参数
  • v1第一个向量 v2第二个向量

bool equals ( const Vec2 & target) const

NA

static Vec2 forAngle ( const float a)

inlinestatic

NA NA

bool fuzzyEquals ( const Vec2 & target,
float variance
) const
  • 返回
  • 如果点有fuzzy equality意味着与某种方差是相等的
  • 自从
  • v2.1.4 NA NA

float getAngle ( ) const

inline

  • 返回
  • 返回向量与x轴夹角,单位是弧度。
  • 自从
  • v2.1.4 NA NA

float getAngle ( const Vec2 & other) const
  • 返回
  • 返回两个向量的夹角,单位是弧度。
  • 自从
  • v2.1.4 NA NA

Vec2 getClampPoint ( const Vec2 & min_inclusive,
const Vec2 & max_inclusive
) const

inline

将一个点限制在min_inclusive和max_inclusive之间,返回该点的二维向量形式

  • 自从
  • v3.0 NA NA

float getDistance ( const Vec2 & other) const

inline

计算两点之间的距离

  • 返回
  • float
  • 自从
  • v2.1.4 NA NA

float getDistanceSq ( const Vec2 & other) const

inline

计算到另一个向量的长度的平方,不调用sqrt().

  • 返回
  • float
  • 自从
  • v2.1.4 NA NA

static Vec2 getIntersectPoint ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D
)

static

返回直线AB,CD的交叉点。

  • 自从
  • v3.0 NA NA

float getLength ( ) const

inline

计算点到原点的距离,返回一个浮点数

  • 返回
  • float
  • 自从
  • v2.1.4 NA NA

float getLengthSq ( ) const

inline

计算该向量长度的平方,不调用sqrt().

  • 返回
  • float
  • 自从
  • v2.1.4 NA NA

Vec2 getMidpoint ( const Vec2 & other) const

inline

用向量计算两点间的中点

  • 自从
  • v3.0 NA NA

Vec2 getNormalized ( ) const

标准化这个向量并将结果保存在dst中

如果向量已经是单位长度或者长度为零, 这个方法将简单的把当前向量值拷贝到dst中。

Vec2 getPerp ( ) const

inline

计算v逆时针旋转90度的垂线–cross(v,perp(v))>=0

  • 自从
  • v2.1.4 NA NA

Vec2 getRPerp ( ) const

inline

计算向量v顺时针旋转90度后的值—cross(v,rperp(v))<=0

  • 自从
  • v2.1.4 NA NA

static bool isLineIntersect ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D,
float S = nullptr,
float T = nullptr
)

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 bool isLineOverlap ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D
)

static

如果直线AB与线段CD重叠,返回True。

  • 自从
  • v3.0 NA NA

static bool isLineParallel ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D
)

static

如果直线AB与线段CD平行,返回True。

  • 自从
  • v3.0 NA NA

bool isOne ( ) const

向量的x、y值是否均为1.0f

  • 返回
  • 如果x、y均为1.0f,则返回true,否则返回false。

static bool isSegmentIntersect ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D
)

static

如果线段AB与线段CD交叉,返回True。

  • 自从
  • v3.0 NA NA

static bool isSegmentOverlap ( const Vec2 & A,
const Vec2 & B,
const Vec2 & C,
const Vec2 & D,
Vec2 S = nullptr,
Vec2 E = nullptr
)

static

如果线段AB与线段CD重叠,返回True。

  • 自从
  • v3.0 NA NA

bool isZero ( ) const

向量值是否为0

  • 返回
  • 如果为0则返回true,否则返回false

float length ( ) const

计算向量的长度并返回

float lengthSquared ( ) const

计算向量长度的平方并返回

当不需要获取准确的向量长度时, 例如只是简单比较不同向量之间的长度大小, 可以使用本方法代替length()

Vec2 lerp ( const Vec2 & other,
float alpha
) const

inline

两个点a和b之间的线性插值

  • 返回
  • alpha ==0 ? a alpha ==1 ? b 否则为a和b之间的一个值
  • 自从
  • v2.1.4 NA NA

void negate ( )

向量求负

void normalize ( )

求向量的标准化向量

这个方法标准化一个Vec2向量为单位长度 (调用这个方法后向量长度为1.0f)。 如果向量已经是单位长度或者长度为零, 这个方法不起任何作用。

bool operator!= ( const Vec2 & v) const

inline

判断该向量是否不等于给定向量v,如果不等则返回True,否则返回False。

const Vec2 operator* ( float s) const

inline

向量乘法,给定浮点数s,求向量各分量分别乘以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。

  • 参数
  • s缩放因子

Vec2& operator*= ( float s)

inline

向量乘法,给定浮点数s,求向量各分量分别乘以s后的值,将所得结果保存在原向量中。

  • 参数
  • s缩放因子.

const Vec2 operator+ ( const Vec2 & v) const

inline

向量加法,求向量与给定向量v的和

注意:这个加法并不改变原向量的值,返回值单独保存

  • 参数
  • v被加的向量

Vec2& operator+= ( const Vec2 & v)

inline

向量加法,求向量与给定向量v的和,将结果保存在该向量中,并返回。

  • 参数
  • v被加的向量

const Vec2 operator- ( const Vec2 & v) const

inline

向量减法,求向量与给定向量v的差 注意:这个减法并不改变原向量的值,返回值单独保存

  • 参数
  • v被加的向量

const Vec2 operator- ( ) const

inline

求反向量 注意:这个方法并不改变原向量的值,返回值单独保存

Vec2& operator-= ( const Vec2 & v)

inline

向量减法,求向量与给定向量v的差,将结果保存在该向量中,并返回。

  • 参数
  • v减的向量

const Vec2 operator/ ( float s) const

inline

向量除法,给定浮点数s,求向量各分量分别除以s后的值。 注意:这个方法并不改变原向量的值,返回值单独保存。

bool operator< ( const Vec2 & v) const

inline

判断该向量是否小于给定向量v,如果小于则返回true,否则返回false。

bool operator== ( const Vec2 & v) const

inline

判断该向量是否等于给定向量v,如果等于则返回True,否则返回false。

Vec2 project ( const Vec2 & other) const

inline

计算该向量在另一向量other上的投影。

  • 自从
  • v2.1.4 NA NA

void rotate ( const Vec2 & point,
float angle
)

向量绕指定点point旋转angle度,其中angle的单位为弧度。

  • 参数
  • point旋转锚点 angle旋转角度

Vec2 rotate ( const Vec2 & other) const

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 void subtract ( const Vec2 & v1,
const Vec2 & v2,
Vec2 * dst
)

static

向量v1减去v2,把结果保存在dst中

  • 参数
  • v1第一向量 v2第二向量 dst结果

Vec2 unrotate ( const Vec2 & other) const

inline

绕other向量旋转前的向量值 返回向量的角度为this.getAngle()-other.getAngle(), 长度为this.getLength()*other.getLength().

(这里是不是有点问题,难道不应该是this.getLength()/other.getLength()么?)

  • 自从
  • v2.1.4 NA NA

类成员变量说明

const Vec2 ANCHOR_BOTTOM_LEFT

static

等于 Vec2(0, 0)

const Vec2 ANCHOR_BOTTOM_RIGHT

static

等于 Vec2(1, 0)

const Vec2 ANCHOR_MIDDLE

static

等于 Vec2(0.5, 0.5)

const Vec2 ANCHOR_MIDDLE_BOTTOM

static

等于 Vec2(0.5, 0)

const Vec2 ANCHOR_MIDDLE_LEFT

static

等于 Vec2(0, 0.5)

const Vec2 ANCHOR_MIDDLE_RIGHT

static

等于 Vec2(1, 0.5)

const Vec2 ANCHOR_MIDDLE_TOP

static

等于 Vec2(0.5, 1)

const Vec2 ANCHOR_TOP_LEFT

static

等于 Vec2(0, 1)

const Vec2 ANCHOR_TOP_RIGHT

static

等于 Vec2(1, 1)

const Vec2 ONE

static

等于 Vec2(1,1)

const Vec2 UNIT_X

static

等于 Vec2(1,0)

const Vec2 UNIT_Y

static

等于 Vec2(0,1)

float x

向量的x值

float y

向量的y值

const Vec2 ZERO

static

等于 Vec2(0,0)


该类的文档由以下文件生成:

  • /Users/zeroyang/Documents/github/cocos2d-x/cocos/math/Vector2.h
  • Vec2
  • 生成于 2014年 五月 29日 星期四 09:41:43 , 为 cocos2d-x使用 doxygen 1.8.6