Crafty.math.Vector2D 类
Vector2D 使用方式如下:
public {Vector2D} Vector2D();
public {Vector2D} Vector2D(Vector2D);
public {Vector2D} Vector2D(Number, Number);
- {Vector2D|Number=0} x
- {Number=0} y
方法
- .add()
- .angleBetween()
- .angleTo()
- .clone()
- .crossProduct()
- .distance()
- .distanceSq()
- .divide()
- .dotProduct()
- .equals()
- .getNormal()
- .isZero()
- .magnitude()
- .magnitudeSq()
- .multiply()
- .negate()
- .normalize()
- .perpendicular()
- .scale()
- .scaleToMagnitude()
- .setValues()
- .subtract()
- .toString()
- .translate()
- .tripleProduct()
.add()
将传递的向量添加到这个向量
public {Vector2D} add(Vector2D);
- {vector2D} vecRH
- [Returns]
{Vector2D}是之后要添加的向量
.angleBetween()
计算传递向量与这个向量之间的夹角,使用<0,0>作为参考点。返回的角度在这个范围 (−π, π].
public {Number} angleBetween(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 是两个向量的夹角
.angleTo()
计算从这个向量得到传递向量的角度,用这个向量作为参考点。
public {Number} angleTo(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 两个向量的夹角弧度
.crossProduct()
计算两个向量的外积的z分量,这两个向量的积是三维的
public {Number} crossProduct(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 是合成的外积
.distance()
计算从这个向量到传递向量的距离。
public {Number} distance(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 是两个向量间的距离
.distanceSq()
计算从这个向量到传递向量的平方距离。这个函数避免计算平方根,因此比 .distance( ) 略快。
public {Number} distanceSq(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 两个矢量之间距离的平方
.divide()
将这个向量除以传递的向量。
public {Vector2D} divide(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Vector2D} 被除后的向量
.dotProduct()
计算这个和经过的向量的点积
public {Number} dotProduct(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Number} 为最终的点积
.equals()
确定这个向量在数值上与传递的向量是否等价。
public {Boolean} equals(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Boolean} true 如果两个向量相等
.getNormal()
计算一个新的右向单位向量,它垂直于由这个和传递的向量所创建的直线。
public {Vector2D} getNormal(Vector2D[, Vector2D]);
- {Vector2D} vecRH
- {Vector2D} [result]
可选参数,用来保存结果
- [Returns]
{Vector2D} 新的标准向量
.isZero()
确定这个向量是否等于<0,0>
public {Boolean} isZero();
- [Returns]
{Boolean} true 如果这个向量等于 <0,0>
.magnitude()
计算这个向量的大小。注意:JavaScript中的函数对象已经有一个“length”成员,因此使用的是数量级。
public {Number} magnitude();
- [Returns]
{Number} 这个矢量的大小
.magnitudeSq()
计算这个向量的大小的平方。这个函数避免计算平方根,因此比 .magnitude( ) 略快。
public {Number} magnitudeSq();
- [Returns]
{Number} 这个矢量的大小的平方
.multiply()
使用传递向量乘以这个向量
public {Vector2D} multiply(Vector2D);
- {Vector2D} vecRH
- [Returns]
{Vector2D} 向量的乘积
.normalize()
归一化向量(缩放这个向量使它新的大小为 1) 对于大小为0的向量, 返回 <1,0>。
public {Vector2D} normalize();
- [Returns]
{Vector2D} 归一化之后的向量
.perpendicular()
计算一个垂直于这个向量的新向量。垂直向量与这个向量的大小相同,将这个向量逆时针旋转90度得到新向量。
public {Vector2D} perpendicular([Vector2D]);
- {Vector2D} [result]
一个可选参数,用于保存结果
- [Returns]
{Vector2D} 垂直的向量
.scale()
使用传入的数量(s)缩放这个向量。如果 scalarY 被省略,则 scalarX 用于两个轴。
public {Vector2D} scale(Number[, Number]);
- {Number} scalarX
- {Number} [scalarY]
- [Returns]
{Vector2D} 缩放后的向量
.scaleToMagnitude()
对这个向量进行缩放,使它的新值等于传递的值。
public {Vector2D} scaleToMagnitude(Number);
- {Number} mag
- [Returns]
{Vector2D} 缩放后的向量
.setValues()
用一个传递的向量或一对数字来设置这个向量的值。
public {Vector2D} setValues(Vector2D);
public {Vector2D} setValues(Number, Number);
- {Number|Vector2D} x
- {Number} y
- [Returns]
{Vector2D} 设置后的向量
.subtract()
将传递的向量从这个向量中减去。
public {Vector2D} subtract(Vector2D);
- {Vector2D} vecRH
- [Returns]
{vector2D} 减去后的向量
.translate()
通过传递的数量转换(移动)这个向量。如果省略了dy,那么dx就被用于两个轴。
public {Vector2D} translate(Number[, Number]);
- {Number} dx
- {Number} [dy]
- [Returns]
{Vector2D} 转换后的向量
.tripleProduct()
计算三个向量的三重积。三重向量积=b(a•c)-a(b•c)
public {Vector2D} tripleProduct(Vector2D, Vector2D, Vector2D, [Vector2D]);
- {Vector2D} a
- {Vector2D} b
- {Vector2D} c
- {Vector2D} [result]
可选参数,用于保存结果
- [Returns]
{Vector2D} 三重积作为一个新矢量