我为项目使用了画布,并且我有一些我偏斜的元素。我只是倾向于y值,只是想知道图像的新宽度是偏移后的(因此我可以将它与另一个画布元素对齐)。看看下面的代码,看看我的意思在画布中歪斜时计算新宽度
ctx.save();
//skew the context
ctx.transform(1,0,1.3,0,0,0);
//draw two images with different heights/widths
ctx.drawImage(image,0,0,42,60);
ctx.drawImage(image,0,0,32,25);
的目标是要知道,42 60图像现在是一个X 60的图像,所以我可以在0,0绘制它之前做一些翻译。很容易单独测量每个图像,但是在整个项目中,我需要对齐不同的偏移值和高度/宽度。目前我使用这个代码(工作体面为25米42的宽度之间的图像):
var skewModifier = imageWidth*(8/6)+(19/3);
var skewAmount = 1.3; //this is dynamic in my app
var width = (skewModifier*skewAmount)+imageWidth;
随着图像变得越来越宽,虽然这个公式很快就会崩溃(我认为这是一个倾斜的公式不在一条直线值像这样的)。关于什么画布可以处理倾斜的想法?
我想我可以这样澄清。考虑到宽度和高度,当倾斜到X时,能否告诉图像的新宽度(看起来高度也有效,即使它只是一个水平偏斜)。 – Jeremy 2012-02-14 17:41:58
好吧我越来越近了。我现在已经知道,如果我得到图像的对角线长度并乘以我的倾斜度,我相当接近正确的值。还没有完成。有任何想法吗? – Jeremy 2012-02-14 19:09:29
你真的是指'ctx.transform(1,0,1.3,0,0,0);'而不是'ctx.transform(1,0,1.3,1,0,0);'? – 2012-02-14 20:31:48