我有两个Vector3点A和B.
我希望从A到B获得从A到B的轨迹路径的矢量C,但是加上它的长度为100品脱。
如何计算此向量?
答案 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;
}