Javascript three.js使用3d'连接两个移动对象;绳索';

Javascript three.js使用3d'连接两个移动对象;绳索';,javascript,graphics,three.js,3d-modelling,dat.gui,Javascript,Graphics,Three.js,3d Modelling,Dat.gui,我正在尝试创建一个带有运动部件的工业机器人模型(运动由dat.gui面板控制) 问题:我不知道如何制作绳索部件(图中的3号部件),当“钩”部件(2号部件)上下移动时,绳索部件将调整其长度。绳索应始终与吊钩和底座(1号)保持连接 我最初尝试使用管状几何体,但不知道如何正确地操纵它以获得所需的结果 您可以在此处找到源代码: 也许有一种特定的形状更容易使用? 任何反馈和提示都将不胜感激 如果我没有弄错,那么您可以使用绳索网格的缩放: var scene=new THREE.scene(); var

我正在尝试创建一个带有运动部件的工业机器人模型(运动由dat.gui面板控制)

问题:我不知道如何制作绳索部件(图中的3号部件),当“钩”部件(2号部件)上下移动时,绳索部件将调整其长度。绳索应始终与吊钩和底座(1号)保持连接

我最初尝试使用管状几何体,但不知道如何正确地操纵它以获得所需的结果

您可以在此处找到源代码:

也许有一种特定的形状更容易使用?
任何反馈和提示都将不胜感激

如果我没有弄错,那么您可以使用绳索网格的缩放:

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机。位置。设置(5,10,10);
摄像机。注视(场景。位置);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var base=新的THREE.Mesh(新的THREE.BoxGeometry(3,1,3)),新的THREE.MeshBasicMaterial({
颜色:“红色”,
线框:正确
}));
基位setY(5);
场景。添加(基础);
var hook=新的THREE.Mesh(新的THREE.BoxGeometry(1,1,1),新的THREE.MeshBasicMaterial({
颜色:“绿色”,
线框:正确
}));
吊钩位置设置(0,-5,0);
底座。添加(挂钩);
var rope=新的三网格(新的三网格几何体(0.1,1,0.1),新的三网格基本材质({
颜色:“蓝色”
}));
绳索。几何。平移(0,-0.5,0);
rope.scale.y=Math.abs(hook.position.y);
底座。添加(绳索);
var gui=new dat.gui();
add(hook.position,“y”,-5,-1).onChange(v=>{
rope.scale.y=Math.abs(v)//沿y轴缩放绳索
});
render();
函数render(){
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}

谢谢!这正是我想要的:)