2010-07-14 106 views
4

在AS3中以编程方式绘制三次贝塞尔曲线的最佳方式是什么? Graphics类似乎只支持二次曲线。 :(我希望能够做一些事情,如:。在Actionscript中绘制三次贝塞尔曲线?

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〜这些在舞台上一次

+0

本页面包含python版本的[cubicToQuadratic](http://svn.navi.cx/misc/trunk/laserprop/client/SVGPath.py)它不会很难翻译。 – Amarghosh 2010-07-15 05:53:18

回答

4

注意: Flash播放器11开始包括一个本地方法来绘制三次曲线,如果您的目标是FP11,这应该是最快的方法。

就在上周,我写了一个类来绘制任意阶的贝塞尔曲线。

该代码未优化,但在我的测试中正常工作。性能对于做动画是可以接受的事件(虽然我认为滥用它并不是一个好主意,因为正如我所说的那样它没有优化;当然,因为玩家可以使用这些二次曲线是没有意义的原生做)。

的代码是在这里,如果你想使用它,或者看看:

The BezierCurve class

Sample code

我认为,随着示例代码,你将能够找出如何使用它没有问题(它非常简单,有些评论);但是如果遇到问题,请离开!

随意使用它,因为你认为合适。

1

如果二次内置成API调用,你必须明白贝塞尔不够好,写自己的立方实现

this