![JS中canvas画布绘制中如何实现缩放,位移,旋转,第1张 JS中canvas画布绘制中如何实现缩放,位移,旋转,第1张](/aiimages/JS%E4%B8%ADcanvas%E7%94%BB%E5%B8%83%E7%BB%98%E5%88%B6%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BC%A9%E6%94%BE%EF%BC%8C%E4%BD%8D%E7%A7%BB%EF%BC%8C%E6%97%8B%E8%BD%AC.png)
cxt.scale(2,2) 缩放的是整个画布,缩放后,继续绘制的图形会被放大或缩小。ctx.translate(x,y) 方法重新映射画布上的 (0,0) 位置x: 添加到水平坐标(x)上的值 y: 添加到垂直坐标(y)上的值 发生位移后,相当于把画布的0,0坐标 更换到新的x,y的位置,所有绘制的新元素都被影响。 位移画布一般配合缩放和旋转等。context.rotate(angle) 方法旋转当前的绘图 注意参数是弧度(PI) 如需将角度转换为弧度,请使用 degrees*Math.PI/180 公式进行计算。three.js包含了很多相机控制器,通过旋转相机可以达到同样的旋转效果。
但是当我们需要固定场景背景,固定固定摄像机的时候。我们只能去移动物体了。Three.js提供了
TransformControls.js控件,它可以控制物体的旋转、缩放、平移,但是使用起来并不方便。
这个时候就需要自己动手写控制器了。
原理很简单:获取鼠标(手势)点击的位置,以及鼠标拖动的距离。
把移动的方向和距离作为参数传递给物体。然后在循环中改变物体的属性来控制物体。
将要转动的物体放在一个组中,改变该组就可以。
这里获取的是X轴方向的鼠标移动的值。然后绕Y轴旋转。也可以添加其他的方向的旋转事件。
也可以添加一个功能,点击立方体之上才有效果。再说吧。