【发布时间】:2015-07-13 07:33:15
【问题描述】:
我正在从事一个有趣的项目,该项目涉及通过用线条绘制“不完美”的圆圈并对它们的点进行动画处理以产生令人愉悦的效果。
这些点应该在远离圆心和靠近圆心之间交替,以说明:
我想我能够做到这一点,问题是当我尝试在画布中渲染它时,渲染抖动的一半像疯了一样,你可以在 demo. 中看到它
您可以在this video 中查看它是如何为我呈现的。如果您密切注意,渲染的右下半部分运行平稳,而左上半部分则没有。
这就是我创建点的方式:
for (var i = 0; i < q; i++) {
var a = toRad(aDiv * i);
var e = rand(this.e, 1);
var x = Math.cos(a) * (this.r * e) + this.x;
var y = Math.sin(a) * (this.r * e) + this.y;
this.points.push({
x: x,
y: y,
initX: x,
initY: y,
reverseX: false,
reverseY: false,
finalX: x + 5 * Math.cos(a),
finalY: y + 5 * Math.sin(a)
});
}
不完美圆中的每个点都是使用一个角度和一个随机距离计算出来的,它不是特别相关(它依赖于几个参数)。
我认为当我分配最终值 (finalX,finalY) 时它开始搞砸了,动画应该在这些值和它们的初始值之间交替,但只有一半的渲染完成了它。
数学错了吗?代码错了吗?还是只是我的电脑无法处理渲染?
我想不通,提前谢谢!
【问题讨论】:
-
@guest271314 现在它对我来说有点不正常了哈哈哈
-
不确定预期的效果是什么?
-
好吧,这些点应该在它们的最终位置和初始位置之间顺利交替,但是由于我看不到它在你这边的渲染效果,所以我很难详细说明哈哈抱歉!
-
@guest271314 这里是how it works for me的视频,右下角很好看,其他都烂哈哈
标签: javascript canvas