2013-09-02 6 views
1

Xtk를 사용하여 볼륨의 거리를 측정하는 위젯을 만듭니다. 장면에는 4 개의 물체, 즉 2 개의 볼, 2 개의 입방체가 있습니다. 큐브는 원점에 배치되고, 분야는 X와 Y 축, 반대 방향에서 각각을 따라 30 개 단위를 번역, 아래와 같이잘못된 볼륨 경계 상자

https://docs.google.com/file/d/0B2oRl7iWfVvTaXAyckNTOC04RlE/edit?usp=sharing

큐브 및 분야가 올바른 위치에 배치되어 있지만 볼륨이 장면에 포함 된 경우 문제가 좌표계를 변경하고 원점을 번역, 발생 :

https://docs.google.com/file/d/0B2oRl7iWfVvTR3BJdk13Zm9BdTQ/edit?usp=sharing

resetBoundingBox() 기능 직후 render()라고하지만 차이가 없습니다. 심지어 객체를 먼저 추가 한 다음 결과가없는 렌더러에 볼륨을 추가하려고했습니다.

구체도 끌 수 있으며 구의 움직임 시작 순간에 마우스 위치와 관련하여 변환되기 때문에이 기능은 또한 일제 계 시스템의 변경에 영향을받습니다.

왜 원산지가 번역 되었습니까? resetBoundingBox()을 무효화하여 볼륨이 장면에 영향을 미치는 것 같습니다.

답변

0

볼륨이 (0, 0, 0)에 있다고 가정했기 때문에 이러한 상황이 발생한다고 생각합니다. 잘못된 가정입니다.

1- 장면의 객체에 번역 등이 중심을 적용 볼륨 경계 상자

var volume = new X.volume(); 
... 
var center = [volume.bbox[0] + (volume.bbox[1]-volume.bbox[0])/2, 
       volume.bbox[2] + (volume.bbox[3]-volume.bbox[2])/2, 
       volume.bbox[4] + (volume.bbox[5]-volume.bbox[4])/2 
       ] 
... 

2에서 REAL 볼륨 센터를 계산

희망이

+0

빼기에서 2 사이의 구분이 누락되었습니다. 이것은 다음과 같습니다 : var center = [volume.bbox [0] + (volume.bbox [1] -volume.bbox [0])/2, volume.bbox [2] + (volume.bbox [2])/2, volume.bbox [4] + (volume.bbox [5] -volume.bbox [4])/2 ] 나는' X.volume'에는 getter가 정의되어 있습니다 (bbox). API 참조에는 나타나지 않습니다. 정보 주셔서 감사합니다. – JPOV

+0

오타를 선택해 주셔서 감사합니다. – Nicolas

0

당신은이 장면을 중심으로 함께 할 수있다이

r.onShowtime = function() { 

    r.resetBoundingBox(); 

} 

r.add(volume); 

처럼 onShowtime 콜백() resetBoundingBox를 호출해야합니다. XTK의 새 버전에서 선택적이어야하는 것.

+0

감사를하는 데 도움이, 그것은 일 ! 그러나 이제는 번역문에 볼륨이 표시됩니다. 실제로 github 페이지에서 Xtk 데모를 테스트 해 보았는데 데이터에 따라 달라진 것 같습니다. ** 데모 10 ** 나는 잘 표현 된 구체를 만들었지 만 (구체와 볼륨 모두 원점에 중심을 두었습니다), ** 데모 11 **에서는 구체가 원점에 표시되지만 볼륨은 현재입니다 번역 중 (솔루션 적용). – JPOV

+0

번역 작업은 볼륨에 영향을주지 않습니다. – JPOV