【发布时间】:2014-12-29 20:37:24
【问题描述】:
我有两个 Vector3 点 A 和 B。
我想将向量 C 放置在从 A 到 B 的轨迹路径中,但要在其长度上增加 100 品脱。
我如何计算这个向量?
【问题讨论】:
标签: three.js
我有两个 Vector3 点 A 和 B。
我想将向量 C 放置在从 A 到 B 的轨迹路径中,但要在其长度上增加 100 品脱。
我如何计算这个向量?
【问题讨论】:
标签: three.js
您可以在 three.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
【讨论】:
在二维上下文中,这将为您提供 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;
}
【讨论】: