2011-11-23 2 views
0

그 가장자리 180 :페이지 회전 I이 함께 달성하려고했던

mat4.translate(mvMatrix, XYZ); 
mat4.rotate(mvMatrix,degToRad(90),[1,0,0]); 
mat4.rotate(mvMatrix,-pageTurn,[0,1,0]); 
mat4.rotate(mvMatrix,degToRad(-90),[1,0,0]); 
mat4.translate(mvMatrix, inverseXYZ); 

이 그려진 왼쪽 지점으로 제 움직이면 X 두 번째 회전 수직 및 제 실제로 하는가를 회전. 그것은 일종의 정확하게 회전하지만, 마치 그것의 가장자리를 꾸준히 유지하는 대신 "책"의 중심을 도는 것 같습니다. pageTurn은 애니메이션에 의해 업데이트 된 각도의 라디안입니다. 나는 그것이 inverseXYZ의 나의 사용 일 수 있었다라고 생각한다. 나는 inverse를하는 mat4에 대한 메소드를 찾을 수 없다. (나는 그것이 역 알고 있지만,에 문서를 찾을 수 없습니다)

나는 그것뿐만 아니라 관점 행렬이 될 수 생각을 ...

답변

0

이 경우에 점 P 주위 물체를 (회전 수 , 그 가장자리에있는 한 점을 따라 페이지) 먼저 행렬을 -p로 변환 한 다음 회전을 수행하고 마지막으로 행렬을 p로 변환합니다. 시각적으로 회전 점이 원점에 오도록 객체를 이동 한 다음 객체를 회전하고 마지막으로 원래 위치로 되돌립니다.

mat4.translate(mvMatrix, vec3.negate(edgePoint, tmpVec)); 
mat4.rotate(mvMatrix, turnAngle, [0, 1, 0]); 
mat4.translate(mvMatrix, edgePoint);