Javascript画布垂直倾斜图像
是否可以在画布上扭曲图像,使其显示为另一图像的反射 下面是一个例子: 我需要翻转和倾斜图像以获得所需的效果,但我无法使其看起来像那样。如何做到这一点 我发现了这个例子: 它们似乎根据一些随机值设置变换 但我无法理解。这些值对我来说似乎非常随机。我正在尝试创建一个动态函数,它允许我确定倾斜的程度,并且适用于所有图像。 您可以使用Javascript画布垂直倾斜图像,javascript,canvas,Javascript,Canvas,是否可以在画布上扭曲图像,使其显示为另一图像的反射 下面是一个例子: 我需要翻转和倾斜图像以获得所需的效果,但我无法使其看起来像那样。如何做到这一点 我发现了这个例子: 它们似乎根据一些随机值设置变换 但我无法理解。这些值对我来说似乎非常随机。我正在尝试创建一个动态函数,它允许我确定倾斜的程度,并且适用于所有图像。 您可以使用context.scale垂直翻转图像: // flip the canvas vertically context.scale(1,-1); 以下是创建图像倾斜反射
context.scale
垂直翻转图像:
// flip the canvas vertically
context.scale(1,-1);
以下是创建图像倾斜反射的步骤:
ctx.translate(x,y)代码>
ctx.drawImage(img,0,0)代码>
ctx.translate(0,img.height)代码>
ctx.Scale(1,-1)代码>
ctx.transform(1,0,倾斜角度,1,0,0)代码>
ctx.scale(1,0.50)代码>
ctx.globalAlpha=0.50代码>
ctx.drawImage(img,0,-img.height)代码>
ctx.setTransform(1,0,0,1,0,0)代码>
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
var cw=画布宽度;
var ch=画布高度;
var img=新图像();
img.onload=启动;
img.src=”https://dl.dropboxusercontent.com/u/139992952/multple/character1.png";
函数start(){
//60x110
斜反射(img,25,25)
}
函数斜反射(img,x,y){
//计算ctx.transform所需的45度倾斜角度
var skewAngle=-Math.tan(Math.PI/4);
//将0,0原点移动到x,y
ctx.translate(x,y);
//绘制原始图像
ctx.drawImage(img,0,0);
//移动到原始图像的底部
ctx.平移(0,img.高度);
//使用“缩放”翻转图像
比例尺(1,-1);
//歪斜
变换(1,0,斜交角,1,0,0);
//缩小反射图像
比例尺(1,0.50);
//使反射图像不透明度为50%
ctx.globalAlpha=0.50;
//绘制反射图像
ctx.图纸图像(img,0,-img.高度);
//通过将所有变换设置为默认值进行清理
setTransform(1,0,0,1,0,0);
}
body{背景色:象牙;}
#画布{边框:1px纯红;边距:0自动;}
没有时间发布答案,但仔细看看你是冠军!谢谢你的详细回复。
// flip the canvas vertically
context.scale(1,-1);