三个JS用绝对值改变矢量长度

时间:2014-12-15 15:05:04

标签: three.js

我有两个Vector3点A和B.

我希望从A到B获得从A到B的轨迹路径的矢量C,但是加上它的长度为100品脱。

如何计算此向量?

enter image description here

2 个答案:

答案 0 :(得分:7)

您可以将delta.js中的非零长度向量按长度len递增,如下所示:

var oldLength = vector.length();

if ( oldLength !== 0 ) {

    vector.multiplyScalar( 1 + ( len / oldLength ) );

}

因此,以下是计算点C的方法。

var A = new THREE.Vector3( 10, 20, 30 );
var B = new THREE.Vector3( 20, 30, 40 );
var C = new THREE.Vector3();

var len = 10;

C.subVectors( B, A ).multiplyScalar( 1 + ( len / C.length() ) ).add( A );

three.js r.69

答案 1 :(得分:1)

在二维上下文中,这将为您提供C:

的坐标
 var oldLength = A.distanceTo(B);
 var newLength = oldLength + 100;

if(oldLength > 0)
{
  C.x = A.x + (B.x - A.x) * newLength / oldLength;
  C.y = A.y + (B.y - A.y) * newLength / oldLength;
}