Html5 canvas 重置结构对象中的倾斜值

Html5 canvas 重置结构对象中的倾斜值,html5-canvas,fabricjs,Html5 Canvas,Fabricjs,我有一个织物椭圆对象,它是缩放和倾斜的。我想重新创建没有缩放和倾斜的相同椭圆。我假设可以通过偏移缩放和倾斜值来计算rx、ry和angle的新值来实现这一点。我设法抵消了缩放值,但我无法计算出抵消倾斜值的计算 提前感谢您的帮助 Jsfiddle- 请参阅示例代码。我希望蓝色椭圆与红色椭圆对齐 var canvas=newfabric.canvas('c'); var redEllipse=新结构。椭圆({ rx:80, ry:50, 原文:“中心”, 原文:'中心', 填写:'', 笔划:“红色

我有一个织物椭圆对象,它是缩放和倾斜的。我想重新创建没有缩放和倾斜的相同椭圆。我假设可以通过偏移缩放和倾斜值来计算
rx
ry
angle
的新值来实现这一点。我设法抵消了缩放值,但我无法计算出抵消倾斜值的计算

提前感谢您的帮助

Jsfiddle-

请参阅示例代码。我希望蓝色椭圆与红色椭圆对齐

var canvas=newfabric.canvas('c');
var redEllipse=新结构。椭圆({
rx:80,
ry:50,
原文:“中心”,
原文:'中心',
填写:'',
笔划:“红色”,
冲程宽度:1,
排名:180,
左:240,
角度:30,
scaleX:1.23,
斯卡利:1.4,
X:25,
歪斜:0
});
canvas.add(redEllipse);
var blueEllipse=newfabric.Ellipse({
rx:redEllipse.rx*redEllipse.scaleX,
ry:redEllipse.ry*redEllipse.scaleY,
原文:“中心”,
原文:'中心',
填写:'',
笔划:“蓝色”,
冲程宽度:1,
top:redEllipse.top,
左:雷德利普,左,
角度:redEllipse.angle*redEllipse.scaleY/redEllipse.scaleX,
scaleX:1,
斯卡利:1,
X:0,
歪斜:0
});
canvas.add(蓝色椭圆)

我想您正在寻找类似的产品

var canvas=newfabric.canvas('c');
var redEllipse=新结构。椭圆({
rx:80,
ry:50,
原文:“中心”,
原文:'中心',
填写:'',
笔划:“红色”,
冲程宽度:1,
排名:180,
左:240,
角度:30,
scaleX:1.23,
斯卡利:1.4,
X:0,
歪斜:0
});
canvas.add(redEllipse);
var blueEllipse=newfabric.Ellipse({
rx:redEllipse.rx*redEllipse.scaleX-10,
ry:redEllipse.ry*redEllipse.scaleY-10,
//rx:80*1.23,
//ry:50*1.4,
原文:“中心”,
原文:'中心',
填写:'',
笔划:“蓝色”,
冲程宽度:1,
top:redEllipse.top,
左:雷德利普,左,
角度:redEllipse.angle,
//角度:30,
scaleX:1,
斯卡利:1,
X:0,
歪斜:0
});
canvas.add(蓝色椭圆)


为什么不在blueEllipse中使用skewX/skewY?我希望blueEllipse没有缩放/倾斜,但答案应该类似于redEllipseThanks,但这是不正确的,因为我的redEllipse的skewX为25,而示例代码中的redEllipse没有任何skewX。事实上,我的问题是如何解释这种倾斜blueEllipse属性中的值