Flash 在Actionscript中绘制三次贝塞尔曲线?
在AS3中以编程方式绘制三次贝塞尔曲线的最佳方法是什么?Flash 在Actionscript中绘制三次贝塞尔曲线?,flash,actionscript-3,graphics,bezier,Flash,Actionscript 3,Graphics,Bezier,在AS3中以编程方式绘制三次贝塞尔曲线的最佳方法是什么?Graphics类似乎只支持二次曲线:(我希望能够做到以下几点: var startPoint:Point = new Point(0, 0); var endPoint:Point = new Point(5, 5); var control1:Point = new Point(5, 0); var control2:Point = new Point(0, 5); var myBezier:Sprite = getBezier(st
Graphics
类似乎只支持二次曲线:(我希望能够做到以下几点:
var startPoint:Point = new Point(0, 0);
var endPoint:Point = new Point(5, 5);
var control1:Point = new Point(5, 0);
var control2:Point = new Point(0, 5);
var myBezier:Sprite = getBezier(startPoint, control1, control2, endPoint);
为了实现性能目标,我计划一次在舞台上部署50个这样的函数。如果API调用中内置了二次函数,那么您必须充分了解Bezier,才能编写自己的三次函数实现 喜欢 注意:Flash Player 11以后的版本包括一种绘制立方曲线的本机方法,如果您的目标是FP11,这应该是最快的方法 就在上周,我写了一个类来绘制任意顺序的贝塞尔曲线 代码没有经过优化,但在我的测试中运行良好。性能是制作动画的可接受事件(尽管我认为滥用它不是一个好主意,因为正如我所说的,它没有经过优化;当然,将这些用于二次曲线是没有意义的,因为玩家可以自己制作) 如果您想使用或查看,代码在此处: 我认为,通过示例代码,您将能够毫不费力地找到如何使用它的方法(它非常直截了当,并且有一些注释);但是如果遇到问题,请立即询问
您可以随意使用它。本网站列出并解释了各种近似三次贝塞尔曲线的方法:
在最底层,他给出了一个标题为“固定中点法”的方法,该方法使用四条二次曲线作为近似值,在精度和性能方面似乎是所有方法中最好的。此页面包含python版本,不难翻译。