围绕其中心旋转两个画布
rotate two canvases around their center
我正在开发可拖动全景图和图像的网络应用程序。用户可以将图像拖到全景图的边缘。在本例中,我正在计算表示全景图像部分的值。由于这个值,我可以将另一个图像放置在全景图的另一侧(全景图是 360°),宽度为该值。
图像可以通过鼠标右键单击旋转,当图像不在边缘时(全景图中只有 1 张图像),它旋转良好。但是当我有 2 张图像(图像被拖过边缘)时,一张旋转得很好,但第二张旋转得很糟糕(在全景中旅行)。
有一个图像时旋转:
img_canvas.width = 150;
img_canvas.getContext('2d').clearRect(0,0,img_canvas.width, img_canvas.height);
img_canvas.getContext('2d').drawImage(img, 0,0, 150, 150);
main_ctx.clearRect(0,0,canvas.width, canvas.height);
main_ctx.drawImage(bg_canvas, panoramaX,panoramaY,bg_canvas.width,bg_canvas.height);
main_ctx.translate(imageX+img_canvas.width/2, imageY+img_canvas.height/2);
main_ctx.rotate(angle);
main_ctx.translate(-(imageX+img_canvas.width/2),-(imageY+img_canvas.height/2));
main_ctx.drawImage(img_canvas, imageX, imageY);
main_ctx.setTransform(1,0,0,1,0,0);
两个图像的旋转:
var img_canvas_width = 150 - over_value;
img_canvas.width = img_canvas_width;
img_canvas.getContext('2d').drawImage( img, 0, 0, 150, 150 );
img_canvas_split.width = over_value;
img_canvas_split.getContext('2d').drawImage( img_split, -img_canvas_width, 0, 150, 150 );
main_ctx.clearRect(0, 0, canvas.width, canvas.height );
main_ctx.drawImage( bg_canvas, panoramaX, panoramaY, bg_canvas.width, bg_canvas.height );
main_ctx.translate( imageX_hit + (img_canvas_width)/2, imageY + img_canvas.height/2 );
main_ctx.rotate( angle );
main_ctx.translate( -( imageX_hit + (img_canvas_width)/2), -(imageY + img_canvas.height/2) );
main_ctx.drawImage( img_canvas, imageX_hit, imageY );
main_ctx.translate( (bg_canvas.width - img_canvas_width/2 - over_value/2), imageY + img_canvas.height/2 );
main_ctx.translate( - (bg_canvas.width - img_canvas_width/2 - over_value/2), -(imageY + img_canvas.height/2) );
main_ctx.drawImage( img_canvas_split, panoramaX, imageY );
main_ctx.setTransform( 1, 0, 0, 1, 0, 0 );
我的问题有一个小提琴。
拜托,有什么解决办法吗?
您不是在旋转图像本身,而是在转换。该转换矩阵适用于所有后续绘制调用。您需要重置两个调用之间的转换。但这对你没有多大帮助。我注意到剪辑也进入了视野。所以你应该试试这个:
- 变换 1
- 绘制 1 而不进行剪切
- 变换 2
- 绘制 2 而不进行剪裁
实际的剪辑将由画布本身完成。我希望这有所帮助。
相关文章:
- 用两个手指旋转谷歌地图javascript中的地图
- 选择最短的旋转来排列两个图像
- 使用关键帧图像旋转器时,图像不会在两个块之间同步协调
- 围绕其中心旋转两个画布
- 在图像后面旋转两个图像
- 为什么两个潜水器都不旋转
- 在两个轴上旋转THREE.js中的三维矢量
- 如何在画布中同时旋转两个矩形
- 如何在同一时间和同一鼠标事件上旋转两个不同的X3D场景
- 如何在两个方向上旋转图像90
- 如何在同一页面中使用两个不同版本的猫头鹰旋转木马
- 两个在圆圈内旋转的箭头
- 猫头鹰旋转木马,一次滚动两个项目
- jQuery文本旋转/填充适用于单个单词,但不适用于两个单词
- 在相反的方向上旋转两个图像
- 在一个页面上显示两个旋转木马
- 计算两个旋转矩形/多边形的碰撞和相交面积
- JQuery在悬停(3D)时前后旋转两个边
- 基本的li旋转器显示两个而不是一个
- 我如何旋转两个图像[在同一画布上]在相反的方向