TouchVG framework
|
二维矢量类 更多...
#include <mgvec.h>
Public 成员函数 | |
Vector2d () | |
构造为零矢量 更多... | |
Vector2d (float xx, float yy) | |
构造为矢量(xx, yy) 更多... | |
Vector2d (const Vector2d &src) | |
拷贝构造函数 更多... | |
Vector2d | transform (const Matrix2d &m) const |
矩阵变换, 矢量 * 矩阵 更多... | |
Vector2d | operator* (const Matrix2d &m) const |
矩阵变换, 矢量 * 矩阵 更多... | |
Vector2d & | operator*= (const Matrix2d &m) |
矩阵变换, 矢量 *= 矩阵 更多... | |
Vector2d | operator+ (const Vector2d &v) const |
矢量加法 更多... | |
Vector2d & | operator+= (const Vector2d &v) |
矢量加法 更多... | |
Vector2d | operator- (const Vector2d &v) const |
矢量减法 更多... | |
Vector2d & | operator-= (const Vector2d &v) |
矢量减法 更多... | |
Vector2d | operator- () const |
返回负矢量 更多... | |
Vector2d | add (const Vector2d &v) const |
矢量加法 更多... | |
Vector2d | subtract (const Vector2d &v) const |
矢量减法 更多... | |
Vector2d & | negate () |
矢量反向,即将该矢量设置为(-x, -y) 更多... | |
Vector2d | perpVector () const |
返回正交矢量, 即逆时针旋转90度,为(-y, x) 更多... | |
Vector2d | operator* (float s) const |
标量积, 矢量 * 数 更多... | |
Vector2d & | operator*= (float s) |
标量积, 矢量 *= 数 更多... | |
Vector2d | operator/ (float s) const |
标量积, 矢量 / 数 更多... | |
Vector2d & | operator/= (float s) |
标量积, 矢量 /= 数 更多... | |
Vector2d & | scaleBy (float sx, float sy) |
比例放缩 更多... | |
Vector2d & | scaleBy (float s) |
比例放缩 更多... | |
float | dotProduct (const Vector2d &v) const |
矢量点积, A·B 更多... | |
float | crossProduct (const Vector2d &v) const |
矢量叉积(0,0,z)中的z, |A×B| 更多... | |
float | operator/ (const Vector2d &v) const |
矢量点积, A·B 更多... | |
float | operator* (const Vector2d &v) const |
矢量叉积(0,0,z)中的z, |A×B| 更多... | |
float | angle () const |
矢量与X轴的夹角, [0, PI) 更多... | |
float | angle2 () const |
矢量角度, [-PI, PI), 从X轴逆时针方向为正, 顺时针为负 更多... | |
float | angleTo (const Vector2d &v) const |
矢量夹角, [0, PI) 更多... | |
float | angleTo2 (const Vector2d &v) const |
沿逆时针方向到指定矢量的转角, [-PI, PI) 更多... | |
float | length () const |
矢量长度 更多... | |
float | lengthSquare () const |
矢量长度的平方 更多... | |
Vector2d | unitVector () const |
返回单位矢量 更多... | |
bool | normalize (const Tol &tol=Tol::gTol()) |
矢量单位化 更多... | |
bool | isUnitVector (const Tol &tol=Tol::gTol()) const |
判断是否是单位矢量 更多... | |
bool | isZeroVector (const Tol &tol=Tol::gTol()) const |
判断是否是零矢量 更多... | |
bool | isDegenerate () const |
返回某个分量是为NAN越界值 更多... | |
bool | operator== (const Vector2d &v) const |
判断两个矢量是否相等 更多... | |
bool | operator!= (const Vector2d &v) const |
判断两个矢量是否不相等 更多... | |
bool | isEqualTo (const Vector2d &v, const Tol &tol=Tol::gTol()) const |
用欧拉规则判断两个矢量是否相等 更多... | |
Vector2d & | set (float xx, float yy) |
设置为矢量(xx, yy) 更多... | |
Vector2d & | set (const Vector2d &v) |
设置为新的矢量 更多... | |
Vector2d & | setAngleLength (float angle, float len) |
设置矢量的角度和长度 更多... | |
Vector2d & | setLength (float newLength) |
设置矢量的长度 更多... | |
Vector2d | scaledVector (float newLength) const |
返回新长度的矢量 更多... | |
void | get (long &cx, long &cy) const |
得到四舍五入后的整数大小 更多... | |
bool | isRightOf (const Vector2d &vec) const |
判断是否在指定矢量的右侧,即沿逆时针方向转到指定矢量时最近 更多... | |
bool | isLeftOf (const Vector2d &vec) const |
判断是否在指定矢量的左侧,即沿顺时针方向转到指定矢量时最近 更多... | |
bool | isParallelTo (const Vector2d &vec, const Tol &tol=Tol::gTol()) const |
判断两个矢量是否平行 更多... | |
bool | isCodirectionalTo (const Vector2d &vec, const Tol &tol=Tol::gTol()) const |
判断两个矢量是否同向 更多... | |
bool | isOppositeTo (const Vector2d &vec, const Tol &tol=Tol::gTol()) const |
判断两个矢量是否反向 更多... | |
bool | isPerpendicularTo (const Vector2d &vec, const Tol &tol=Tol::gTol()) const |
判断两个矢量是否垂直 更多... | |
bool | isParallelTo (const Vector2d &vec, const Tol &tol, bool &nonzero) const |
判断两个矢量是否平行 更多... | |
bool | isCodirectionalTo (const Vector2d &vec, const Tol &tol, bool &nonzero) const |
判断两个矢量是否同向 更多... | |
bool | isOppositeTo (const Vector2d &vec, const Tol &tol, bool &nonzero) const |
判断两个矢量是否反向 更多... | |
bool | isPerpendicularTo (const Vector2d &vec, const Tol &tol, bool &nonzero) const |
判断两个矢量是否垂直 更多... | |
float | distanceToVector (const Vector2d &xAxis) const |
求本矢量投影到矢量xAxis上的垂直距离 更多... | |
float | projectScaleToVector (const Vector2d &xAxis) const |
求本矢量在矢量xAxis上的投影比例 更多... | |
float | projectResolveVector (const Vector2d &xAxis, Vector2d &proj, Vector2d &perp) const |
求本矢量在矢量xAxis上的投影矢量和垂直矢量 更多... | |
bool | resolveVector (const Vector2d &uAxis, const Vector2d &vAxis, Vector2d &uv) const |
矢量分解 更多... | |
bool | resolveVector (const Vector2d &uAxis, const Vector2d &vAxis) |
矢量分解 更多... | |
静态 Public 成员函数 | |
static const Vector2d | kIdentity () |
零矢量(0,0) 更多... | |
static const Vector2d | kXAxis () |
X轴单位矢量(1,0) 更多... | |
static const Vector2d | kYAxis () |
Y轴单位矢量(0,1) 更多... | |
static Vector2d | angledVector (float angle, float len) |
返回指定角度和长度的矢量 更多... | |
Public 属性 | |
float | x |
X坐标分量 更多... | |
float | y |
Y坐标分量 更多... | |
友元 | |
Vector2d | operator* (const Matrix2d &m, const Vector2d &v) |
矩阵变换, 矩阵 * 矢量 更多... | |
Vector2d | operator* (float s, const Vector2d &v) |
标量积, 数 * 矢量 更多... | |
二维矢量类
本类用于描述二维平面上具有方向和长度的矢量,具有x和y两个坐标分量