2013-01-10 4 views
3

174 점, 12 개의 반경 세그먼트, 100 개의 반경 및 174 개의 세그먼트로 구성된 튜브 형상이 있습니다. 튜브의 어느 부분에서 두 번 클릭하면 +/- 8 포인트가있는 튜브의 비율이 조정 된 부분이 표시됩니다. 이제 튜브의 절곡 부분을 클릭하면 튜브의 직선 부분을 클릭했을 때 비례가 잘 보이지 않습니다.three.js - 튜브 형상의 스케일링/변형

다음 2 개의 이미지를 찾으십시오. 3d full piipeportion 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; 

가 적절히 확장 또는되도록 실린더에 굽힘 부분이 튜브를 직선 부 같다고 변환 어쨌든 있는가?

답변

0

나는 당신이하고있는 스케일링은 부적절하다고 생각합니다. 크기를 조정하려고하는 섹션은 y 축을 따라 축을 가질 수 없으므로 x 및 z 매개 변수 만 크기 조정하면 왜곡됩니다. 섹션의 축을 알 수 있습니까? 그런 다음 두 가지 방법이 있습니다.

1) 축을 y 축과 정렬하고 x 및 z 좌표를 축척하고 섹션을 다시 회전하도록 섹션을 회전합니다.

2) 임의의 방향으로 축이있는 원통을 축척하는 공식을 생각해보십시오.

아주 오래된 질문이므로 이미 답변을 얻었을 것입니다. 내가 틀렸고 무엇이 당신을 위해 일했는지 알려주세요.

관련 문제