如何在d3中实现这种过渡效果
How to achieve this transition effect in d3?
我对d3非常陌生,想知道如何实现这种效果,其中多条线始终与圆的周长相切。
这是我目前所看到的:http://jsfiddle.net/tz5KT/181/
function transition() {
svg.selectAll(".lines")
.attr("x2", function (d) {
var tangent = findTangent(d.x, d.y);
return tangent.x;
})
.attr("y2", function (d) {
var tangent = findTangent(d.x, d.y);
return tangent.y;
});
circleX = getRandom(0, width),
circleY = getRandom(0, height);
svg.select(".circle").transition()
.duration(1500)
.attr("cx", circleX)
.attr("cy", circleY)
.each("end", transition);
}
我只是不确定如何将这些线从一个位置过渡到下一个位置,同时保持它们与圆相切。有什么建议吗?感谢。
我想我明白了
http://jsfiddle.net/tz5KT/219/查看我对attrTween
的使用,它可能会有所帮助
您需要在transition
函数中添加过渡到线点,如下所示:http://jsfiddle.net/tz5KT/177/这里稍微延迟了一下
这就是你想要的过渡函数:
function transition() {
circleX = getRandom(0, width),
circleY = getRandom(0, height);
svg.select(".circle").transition()
.duration(1500)
.attr("cx", circleX)
.attr("cy", circleY)
.each("end", transition);
svg.selectAll(".lines")
.transition()
.duration(1500)
.attr("x2", function (d) {
var tangent = findTangent(d.x, d.y);
return tangent.x;
})
.attr("y2", function (d) {
var tangent = findTangent(d.x, d.y);
return tangent.y;
});
}
相关文章:
- 滚动延迟页面过渡效果
- 如何根据上一个或下一个箭头为nivo滑块提供特定的过渡效果
- 如何在javascript中添加过渡效果
- 在它们停止工作后恢复过渡效果
- 如何在没有过渡效果的情况下使用fancybox调整大小
- 加载新页面时的过渡效果,AJAX
- 覆盖ColorBox打开/关闭过渡效果
- 带有onclick的CSS3过渡效果
- 当单击菜单时,应用过渡效果来减慢子菜单的打开速度
- 让 jquery 和 css 过渡效果协同工作
- 具有放大/缩小过渡效果的全屏滑块
- JQuery 移动版:仅在后退/前进按钮上禁用页面过渡效果
- 暂时禁用CSS过渡效果的最干净方法是什么
- 如何在自动完成中制作过渡效果(幻灯片)
- 隐藏 3 列并将其中一列扩展为 100% 行时的 jQuery 过渡效果
- CSS 切片/插槽过渡效果,用于/与 DIV 一起使用
- Vue.js具有CSS动画和过渡效果的待办事项任务
- 如何实现幻灯片过渡效果
- 如何在d3中实现这种过渡效果
- 如何通过jQuery在iphone应用程序中实现幻灯片过渡效果