【问题标题】:Animate camera along multiple bezier paths in AS3 / Processing / D3?在 AS3 / Processing / D3 中沿多个贝塞尔路径动画相机?
【发布时间】:2011-11-09 00:47:46
【问题描述】:

我有一个使用 Gephi 生成的网络图可视化,其中包含许多节点和边。我需要制作摄像机(或移动影片剪辑)的动画,以沿着贝塞尔曲线的路径“飞越”网络,随机访问每个(不一定是每个)节点。我制作了what this would look like 的快速动画。

如何通过 AS3 或 Processing 或使用 github 上的 mbostock D3 javascript 库以编程方式实现此目的?

到目前为止,我在 AS3 中的尝试是使用 Miller H. Borges Medeiros' tool 将 gephi 生成的 SVG 转换为 AS3 代码,然后尝试调整贝塞尔补间库,例如 Zeh Fernando 的示例,但我遇到了困难。

Medeiros 的转换器将二次贝塞尔曲线拆分为 4 个单独的二次贝塞尔曲线,我不确定如何将 flash 的 curveTo 方法转换为 Fernando 代码中的贝塞尔曲线点数组。

然后是只通过那些相互连接的节点来动画相机的问题。

有什么想法吗? 谢谢你的帮助!!..

【问题讨论】:

    标签: actionscript-3 animation visualization processing bezier


    【解决方案1】:

    我之前没有使用过 Gephi,但我之前确实回答过 similar question。 任务是为从 Illustrator 导出的路径上的对象设置动画。 我的解决方案是使用 FXG 和 LibSpark as3 FXGParser 并自定义类库以将路径坐标导出为 TweenLite 补间。

    这可以应用/适应您的示例,但可能使用SvgParser

    svn export http://www.libspark.org/svn/as3/SvgParser
    

    我更喜欢TweenLite,因为它是最新的(Tweener 不再被开发)。 如果您更喜欢 Tweener,同样的原则也适用,因为两个补间库都使用二次贝塞尔曲线进行路径动画。你可以找到更多关于 Tweener 路径动画here。如果有帮助,wonderfl 还有另一个example

    只要你有曲线坐标(你提到你可以使用curveTo绘制),你也可以在这些曲线上进行补间。

    【讨论】:

    • 谢谢乔治!这正是我所追求的。但是我使用了您之前帖子中的 AS3SWF 方法示例,并且补间与所有曲线上的路径不完全匹配。球在某些部分有一点偏离,只有当路径很大时才会发生这种情况。这是my test。我只是在移动路径而不是球。有什么想法吗?另外,我想知道如何以正确的顺序解析路径,以免从一个节点突然跳转到另一个遥远的未连接节点?
    • 嘿,进步很大!我不完全理解 AS3SWF 解析 ShapeTags 的顺序,这就是为什么我建议看一下 SvgParser (也许修改Path.as 所以它会根据绘图命令生成一些 Tweener/TweenLite 代码(MOVE_TO - 补间到, CURVE_TO - 贝塞尔曲线等)。有一个 Sample.as 开始,但它有助于深入到 Path.as 并跟踪/调试形状以查看解析曲线的顺序。我想以某种方式存储它们会很方便......
    • ...补间说从 nodeA 到 nodeB(可能在哪里)
    • 顺便说一句,你能张贴那个图的svg吗?
    • 这里是 SVG 文件 xime.com.au/graph-animation/network.svg 我对修改 SvgParser 代码不太有信心,但我会看看我该怎么做...
    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多