【发布时间】:2017-01-28 13:16:40
【问题描述】:
我正在做一个小项目,我希望两个圆圈通过粘糊糊的效果连接起来。我已经在网上安静地搜索了很多,并以标签栏或侧边栏菜单的形式遇到了一些示例,但这都是固定的,而不是我想要的。
我基本上想要的是following。所以有一个圆圈,如果我将它拉近另一个圆圈,它就会卡在一起,也称为粘糊糊效果。
一个代码示例是最好的,但是如何做到这一点的方向/方法也会帮助我。
【问题讨论】:
-
因此,您希望在用户与该圈子交互时产生这种效果,然后在两个圈子相遇或离开时产生这种效果。对吗?
-
计算当前形状的贝塞尔曲线点可以通过elementary geometry来完成;我建议将阅读作为一个好的开始。
-
也许你可以从这个技巧中得到启发:github.com/yoavlt/LiquidFloatingActionButton
-
@holex,你是说你有一种从曲线推导出贝塞尔曲线控制点的通用方法吗?我可以看到您发布的链接如何让您找到两个圆圈的区域,这些区域将被“吸引”到另一个圆圈(假设两个圆圈在它们实际重叠之前开始扭曲。)但我一直想知道是否有一种从曲线上的“局部最大值和最小值”点导出三次贝塞尔曲线控制点的方法。你的帖子暗示有这样的方法。
-
而且,@holex,我可以看到您如何使用外切线来找到每个圆上的点,您将从圆弧过渡到“粘性”圆开始的曲线满足,但是您将如何计算贝塞尔控制点,以便在形状从每个圆过渡到圆相交的曲线的点处没有“扭结”?