应用微积分平滑连接Flash中两条二次贝赛尔曲线

大学里有一门很重要的课程,叫高等数学。这门课是既让人喜又让人忧的课,我觉得还是忧占多数吧,书上讲的很抽象,而且很少提到这些东西在实际中的运用,所以很难提起大学的兴趣,最终会被大多数人归为‘天书’,我当年就觉得没兴趣。 但最近要实现的功能里必须用到微积分的知识,终于体会到了它带来的乐趣。。。 这次是要做一个网络拓扑的flash,包含拓扑图的编辑和展现功能,遇到一个难点是两台主机之间如多有个连接时,连接需要用孤线。在flash中孤线有二次贝赛尔曲线的绘图函数,只要提供三个点就OK了。但是,我的需求里,每个连接是要表示连接的两个方向流量信息,所以实际上,我们是要两段线组成一段线。直线就最简单,知道两个点取中点,分别画两条线就OK了,但要两根二次贝赛尔曲线组合成一根圆滑的曲线,就成了难点了。 现在就是,我们有一个起始点和一个结束点的数据,还有中点的数据是自己规定的,现在需要用两根二次贝赛尔曲线来组合成这一根曲线,以达到“把一条曲线分成两部分”的效果。下图就是最终实现后的效果。我这儿故意多连了几根线,但设了不同的带宽来表示同一条线的流量,所以颜色是不一样的。根据带宽和当前流量值设置各段线的颜色不是难点,呵呵。