three.js - 管几何的缩放/变换

时间:2013-01-10 08:06:09

标签: three.js

我的管道几何形状有174个点,12个半径段,100个半径和174个段。 当我在管的任何部分双击时,将显示+/- 8点的管的缩放部分。 现在的问题是,当我点击弯曲管的一部分时,缩放部分看起来不像我点击管的直线部分那样好。

请在下面找到2张图片。3d full piipe portion selected at bend

请在此处找到jsfiddle

请在下面找到缩放代码。

tube = new THREE.TubeGeometry(extrudePath, segments, 100, radiusSegments, closed, debug);           
            tube.dynamic = true;

            tube.computeBoundingBox();
            console.log(tube);          
            tube.scale.x = tube.boundingBox.max.x;
            tube.scale.z = tube.boundingBox.max.z;

是否有适当的比例缩放或将弯曲部分转换为圆柱体,使其看起来像管子的直线部分?

1 个答案:

答案 0 :(得分:0)

我认为您正在进行的扩展是不正确的。由于您尝试缩放的部分可能没有沿y轴的轴,因此仅缩放x和z参数将导致失真。是否可以知道该部分的轴?然后有两种方式 -

1)旋转剖面,使轴与y轴对齐,缩放x和z坐标,然后旋转剖面。

2)提出一个公式来对任意方向的轴进行刻度。

由于这是一个非常古老的问题,你可能已经得到了答案。如果我错了,请告诉我,哪些对您有用。