SketchUp에 내보내기 스크립트 (루비)를 쓰고 있는데 객체가 가지도록 Three.js 측면에서 동일한 변환을 적용하는 데 문제가 있습니다. SketchUp에 나타나는 Three.js에서의 동일한 회전.Sketchup 변환을 Three.js 회전 + 비율 + 위치 또는 행렬로 변환
나는 스케치 변환 클래스를 사용하여 회전을 읽을 수 있습니다 http://www.sketchup.com/intl/en/developer/docs/ourdoc/transformation.php
나는 내 Three.js를 코드에 전달 회전 된 구성 요소에서 값이 종류를 얻을 수 있습니다. 모든 X, Y 형태의 그림, Z I 단지 Object3D.position을 원점에서의 값을 복사하면
xaxis: 0.0157771536190692,-0.0,-0.0199058138160762
yaxis: -0.0199058138160762,0.0,-0.0157771536190692
zaxis: 0.0,0.0254,-0.0
origin: 1.4975125146729,0.0,-1.25735397455338
개체가 올바르게 배치되어있다. 그러나 Object3D.rotation에 xaxis, yaxis 및 zaxis 값을 적용하는 방법을 알지 못합니다.
Three.js에는 행렬 조작, 쿼터니온, 각도, 라디안 및 기타 등을 통해 모델을 회전하는 다양한 방법이 있습니다. 그러나 이러한 축 값을 사용하여 객체 회전을 설정하는 방법은 무엇입니까?
EDIT :
스케치 변환은 또한 I는 16 엘리먼트 행렬을 반환하기로 생각하는 방법 (배열)를 .to_a을 제공한다. 나는 Three.js에서 그것을 사용하려고 시도했다.
// tm is from SketchUp:Transformation to_a
var tm = "0.621147780278315,0.783693457325836,-0.0,0.0,-0.783693457325836,0.621147780278315,0.0,0.0,0.0,0.0,1.0,0.0,58.9571856170433,49.5021249824165,0.0,1.0";
tm = tm.split(",");
for (var i = 0; i < tm.length; i++) {
tm[i] = tm[i] * 1.0;
}
var matrix = new THREE.Matrix4(tm[0], tm[1], tm[2], tm[3], tm[4], tm[5], tm[6], tm[7], tm[8], tm[9], tm[10], tm[11], tm[12], tm[13], tm[14], tm[15]);
obj.applyMatrix(matrix);
그러나이 결과는 완전히 엉망이되어 여전히 잘못된 것이있다. 여기에 정보를 바탕으로