Flex 使用curveTo画跟随鼠标改变的曲线

来源:互联网 发布:linux mv所有文件 编辑:程序博客网 时间:2024/04/30 00:27

 

    Flex 中curveTo描绘的结果,如下图,

    三角形ABC中平行于底边AB的弧AFB的切线切点为F

    而切点F与AB的垂直距离始终保持为1/2 CD'

    所以如图把鼠标点作为控制点则曲线永远不能与鼠标点重合.

    

    但因为CF的延长线交AB于E点,经测试且E点为AB的中点,

    

    通过以上数据,得出只要把EC延长2倍,用所得的端点作为控制点,则可实现曲线将与鼠标点重合.

    

  1.         //    startPoint      A
  2.         //    endPoint        B
  3.         //    
  4.         //  求线段中点    
  5.         var p:Point = C;
  6.         var m:Point = Point.interpolate(startPoint, endPoint, 0.5);
  7.         //    端点
  8.         var xT:Number = m.x - p.x;
  9.         var yT:Number = m.y - p.y;
  10.         
  11.         graphics.moveTo(startPoint.x, startPoint.y);
  12.         graphics.curveTo(p.x-xT, p.y-yT, endPoint.x, endPoint.y);