【发布时间】:2014-01-24 12:58:12
【问题描述】:
使用 Fabric.js,我无法真正围绕其中心点旋转三角形,或者至少我认为应该是中心点。我创建了一个 jsFiddle 来演示。三角形很简单,我使用originX: 'center' 和 originY 相同,但是随着三角形旋转,x 和 y 方向仍有轻微移动。如何确保三角形永远不会移动?
我找到了这个答案,想知道这是否是正确的选择? how to rotate around one specified point in fabric.js?
编辑:新的努力包括实施上述链接问题的答案。代码如下:
function createTriangle(x, y, angle)
{
var t = new fabric.Triangle(
{
width: 350,
height: 300,
selectable: false,
fill: 'rgba(0,0,0,0)',
stroke: 'white',
strokeWidth: 2,
left: x,
top: y,
angle: angle
});
var rotation_origin = new fabric.Point(t.getCenterPoint().x, t.getCenterPoint().y);
var angle_randians = fabric.util.degreesToRadians(angle);
var rotatePoint = fabric.util.rotatePoint(new fabric.Point(rotation_origin.x, rotation_origin.y), rotation_origin, angle_randians);
t.originX = rotatePoint.x;
t.originY = rotatePoint.y;
return t;`
}
但是,这对我不起作用。三角形在旋转时仍然会移动一点。
编辑:我尝试从上面的链接问题中设置指定的旋转点。它对我没有用。三角形旋转完全相同。
EDIT2:随着我深入研究,我开始相信这不仅仅是一个 Fabric.js 问题。看起来更像是 webGL,但不是问题,只是形状转换的方式。我可以看到旋转矩形和三角形之间存在差异。使用中心原点,矩形永远不会出现移动。我还没有找到答案,但我将 webGL 作为标签包含在内,希望能在这方面得到一些帮助。有没有人遇到过这种情况?
【问题讨论】:
标签: javascript webgl fabricjs