0

你可以在那里看到代码:http: //jsfiddle.net/jocose/CkL5F/901/ (双击框并移动鼠标)

注意:这是一个简化的示例,它是更大系统的一部分。我的最终目标是操纵路径的各个顶点。

更新:我计算了数字,数学实际上似乎是正确的。我想要做的是计算每个点到鼠标的偏移量,然后将该点移动到鼠标位置+偏移量。因此,如果我有一个 224 的鼠标,那么 224-103 = 121 然后我添加: 121+224=345 这会产生我所看到的起伏循环。我不知道为什么这些让我如此难过,任何帮助将不胜感激。

我需要手动更新 Raphael 路径元素。

为此,我使用 Raphael 强大的内置函数“parsePathString”将绝对路径转换为数组

然后我循环遍历该数组并根据鼠标位置修改值。

仅对 X 值进行更新,并且是实时的;每次鼠标移动时调用。

当元素移动时,它会在正确位置和某个异常位置之间来回闪烁。

我不知道它为什么这样做。我花了将近 5 个小时试图弄清楚这一点,但我被正式卡住了。

这是一个结果示例,您可以在其中看到值跳跃:

MOUSE224 
M,103.676287 
MOUSE225 
M,346.323713 
MOUSE227 
M,107.676287 
MOUSE228 
M,348.323713 12
MOUSE228 
M,107.676287 
MOUSE229 
M,350.323713
MOUSE231 
M,111.67S287 
MOUSE232 
M,3S2.323713
MOUSE233 
M,113.676287
MOUSE233 
M,3S2.323713
4

1 回答 1

1

这是我修改后的小提琴版本,以执行我认为您需要的操作。至少,它似乎有效。这是我必须为 Raphael 2 转换修复的同一类型的问题

基本上,在您的 mousemove 中,我已将 mx 更改为计算鼠标现在所在位置与上次调用 mousemove 所在位置之间的偏移量。您的 move() 函数现在只需将此值添加到 x 坐标。

希望这对您有所帮助

于 2012-05-20T21:19:05.910 回答