【发布时间】:2017-05-24 15:46:08
【问题描述】:
我想 - 在 D3 的帮助下 - 以不同的速度围绕其中心旋转一个对象。只要旋转速度不太高,一切正常。但最终对象开始翻滚,即使旋转中心(明显)是固定的。
在http://jsfiddle.net/mcqnpgn6/找到掷骰子`
// initialize rotation angles
var dAngle = 10
var angles = []
var angle = 0;
for (i = 0; i < T; i++) {
angles[i] = angle
angle += dAngle > 0 ? dAngle : i
}
// create dice ....
// rotate dice
for (i = 0; i < T; i++) {
dice.transition()
.delay(i * dt)
.duration(dt)
.ease("linear")
.attr("transform", "rotate(" + angles[i] + "," + cx + "," + cy + ")")
}
我做错了什么或理解错误? 你将如何解决这个任务?
【问题讨论】:
-
我会使用
requestAnimationFrame而不是在for循环中编写自己的动画,我认为这不需要transition()。每一帧,您都希望骰子旋转 一些 角度,与速度变量成反比。