Javascript 在dynamic.js问题中,旋转dynamic.group
我使用的是动态js。我正在将图像、线条等添加到kinetic.group中,并尝试旋转该组,它正在正确旋转。但是在旋转组后,如果我试图画一条线,它就不能正确地在当前鼠标位置上绘制。它像旋转前一样画图 问题可能是,如果我旋转团队,舞台坐标似乎不会旋转。我应该做些什么来防止这种情况 参考代码-- 这样我就画出了界限Javascript 在dynamic.js问题中,旋转dynamic.group,javascript,css,html,kineticjs,Javascript,Css,Html,Kineticjs,我使用的是动态js。我正在将图像、线条等添加到kinetic.group中,并尝试旋转该组,它正在正确旋转。但是在旋转组后,如果我试图画一条线,它就不能正确地在当前鼠标位置上绘制。它像旋转前一样画图 问题可能是,如果我旋转团队,舞台坐标似乎不会旋转。我应该做些什么来防止这种情况 参考代码-- 这样我就画出了界限 var activeline = new Kinetic.Line({ points: [{x:0,y:0}], stroke: "blue", strokeWidt
var activeline = new Kinetic.Line({
points: [{x:0,y:0}],
stroke: "blue",
strokeWidth: 3,
lineCap: "round",
lineJoin: "round",
});
var mousePos = stage.getMousePosition();
points.push({
x: mousePos.x,
y: mousePos.y
});
activeline.setPoints(points);
rootGroup.add(activeline);
我不熟悉KineticJS,但似乎必须将转换矩阵重置回其默认状态。OpenGL有glLoadIdentity()方法。在KineticJS上搜索类似的方法 请参见本教程
我不熟悉KineticJS,但似乎必须将变换矩阵重置回其默认状态。OpenGL有glLoadIdentity()方法。在KineticJS上搜索类似的方法 请参见本教程
这应该会让你非常接近:
这应该会让你非常接近:
是的,但不完全。我试过同样的方法,但没有成功。是的,但不完全成功。我试过同样的方法,但没有成功。你的线条对象是Kinetic.group的成员吗?你能粘贴一些参考代码吗?行对象是组的成员。我将为您发布一些代码。var rootGroup=新的dynamic.Group();rootGroup.add(行);rootGroup.setRotationDeg(rootGroup.getRotationDeg()+90);您的代码不会显示您在何处以及如何绘制线。看起来您正在使用鼠标位置返回的坐标更新旋转后的线坐标,这些坐标相对于屏幕位置而不是组。我认为一种可能的方法是每次绘制线条时旋转线条(在其起点上)。我已发布了有关绘制线条的代码,请浏览一下,然后回答问题的解决方案。您的线条对象是否为Kinetic.group的成员?你能粘贴一些参考代码吗?行对象是组的成员。我将为您发布一些代码。var rootGroup=新的dynamic.Group();rootGroup.add(行);rootGroup.setRotationDeg(rootGroup.getRotationDeg()+90);您的代码不会显示您在何处以及如何绘制线。看起来您正在使用鼠标位置返回的坐标更新旋转后的线坐标,这些坐标相对于屏幕位置而不是组。我认为一种可能的方法是每次你画线时旋转线(在它的起点上)。我已经发布了关于画线的代码,请看一眼,然后回复问题的解决方案。
var activeline = new Kinetic.Line({
points: [{x:0,y:0}],
stroke: "blue",
strokeWidth: 3,
lineCap: "round",
lineJoin: "round",
});
var mousePos = stage.getMousePosition();
points.push({
x: mousePos.x,
y: mousePos.y
});
activeline.setPoints(points);
rootGroup.add(activeline);
// This rotates that added active line along with your group.
// This makes the draw direction correct
activeline.setRotationDeg(0-rootGroup.getRotationDeg());