将页面沿边缘旋转180度
Rotating a page 180 degrees along its edge
我试图通过:
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
。我在mat4上找不到做逆的方法。(我知道它是相反的,但找不到相关文档)
我想它也可以是透视矩阵…
您可以围绕点p旋转对象(在本例中,是沿着其边缘上的点的页面),首先将矩阵平移-p,然后进行旋转,最后将矩阵平移p。从视觉上看,您移动对象使旋转点位于原点,然后旋转对象,最后将其放回到原来的位置。
mat4.translate(mvMatrix, vec3.negate(edgePoint, tmpVec));
mat4.rotate(mvMatrix, turnAngle, [0, 1, 0]);
mat4.translate(mvMatrix, edgePoint);
相关文章:
- 图像在旋转 90 度时脱离父 td
- 如何设置对象沿世界x轴旋转90度
- 创建一些圆弧超过180度的饼图
- 如何将每个图形旋转90度
- 将 d3.parset 可视化效果旋转 90 度(使可视化效果变为水平而不是垂直)
- 如何防止物体在达到完整圆时旋转 360 度
- 获取相机的当前旋转(以度为单位)
- 将矩阵数组旋转 180 度
- 通过手机加载时,画布图像会将图像旋转 90 度
- SVG 如何创建 180 度的贝塞尔曲线
- html将整个画布旋转90度
- 旋转(360度)圆形分区内的文本框动画
- 如何旋转180度
- 如何在悬停150毫秒的时间内将元素旋转到180度
- Three JS Camera Orientation以180度而不是360度返回值
- 未使用Chrome 37中的.transform应用旋转(90度)
- 将图像元素旋转+45度
- 如何在每次点击时用CSS转换/转换JS将对象旋转120度
- 图像旋转360度点击
- 将页面沿边缘旋转180度