如何使用three.js链接两个几何对象

时间:2013-08-17 08:41:13

标签: javascript three.js

我们如何使用线连接两个球体? 我希望它像用绳子或弹性物体连接的球一样 有人能指出一些样品吗?

3 个答案:

答案 0 :(得分:2)

在两点之间绘制箭头很简单:

var startPoint = new THREE.Vector3(10,20,30);
var endPoint   = new THREE.Vector3(70,80,90);
var direction = new THREE.Vector3().subVectors(endPoint, startPoint).normalize();
var arrow = new THREE.ArrowHelper(direction, startPoint, startPoint.distanceTo(endPoint), 0xCC0000 );
scene.add(arrow);

仅画一条线有点棘手:

var lineGeometry = new THREE.Geometry();
lineGeometry.vertices.push( new THREE.Vector3(10,20,30), new THREE.Vector3(70,80,90) );
lineGeometry.computeLineDistances();
var lineMaterial = new THREE.LineBasicMaterial( { color: 0xCC0000 } );
var line = new THREE.Line( lineGeometry, lineMaterial );
scene.add(line);

答案 1 :(得分:0)

我所指的是物理引擎。

可在此处找到示例 http://schteppe.github.io/cannon.js/

答案 2 :(得分:0)

如果要为两个对象之间的线条赋予“弹性感”,可以使用BezierCurveThree.js中包含的几种不同类型。 例如,请查看this link以获取更多信息。

我不太明白你在自己的答案中对于物理引擎的意义,但是如果你打算生产像线一样的水平绳索,你最好使用一些THREE.Line连接并激活物理引擎,例如cannon.js。我认为你最好使用THREEx.cannon.js来轻松整合两者。