因此,我正在尝试创建一个使对象以弯曲运动移动的功能。这个函数应该被重用并且应该能够将不同的数字作为参数。这些数字将用作指导曲线方向的控制点。我面临两个问题:
当尝试使用参数
point0x
而point0y
不是方程中的变量时,输出的xt
值与我使用变量时的差异很大。同时,输出yt
为NaN
. 但是,每当我插入p0.x
并p0.y
替换它们时,一切都会按预期进行。我想用它
cancelRequestAnimationFrame();
来停止动画递归。我不断收到错误消息:cancelRequestAnimationFrame 未定义。
我需要在完全不同的功能中取消吗?我应该避免在
if
声明中使用它吗?
function parameter_test(point0x, point0y) {
var p0 = {x:0, y:700};
var p1 = {x:20, y:100};
var p2 = {x:200, y:100};
var p3 = {x:200, y:0};
var cx = 3 * (p1.x - point0x);
var bx = 3 * (p2.x - p1.x) - cx;
var ax = p3.x - point0x - cx - bx;
var cy = 3 * (p1.y - point0y);
var by = 3 * (p2.y - p1.y) - cy;
var ay = p3.y - point0y - cy - by;
var xt = ax * Math.pow(t, 3) + bx * Math.pow(t, 2) + cx * t + point0x;
var yt = ay * Math.pow(t, 3) + by * Math.pow(t, 2) + cy * t + point0y;
t += speed;
if (t > 1) {
t = 1;
cancelRequestAnimationFrame(parameter_test);
}
requestAnimationFrame(parameter_test);
console.log(xt, yt);
}
parameter_test(0, 700);