上一篇文章,只是简单的求出了抛物线的坐标,而且也不够灵活。如果只是单纯的画线,使用as3自带的curveTo(二次贝塞尔曲线)就已经足够了。
二次贝塞尔曲线演示动画 t in [0, 1] (图片来源于wiki贝塞尔曲线>>)
下面的例子,根据鼠标的位置,绘制经过指定起始点、结束点和鼠标位置的曲线。
package
2: {
import flash.display.Sprite;
import flash.events.Event;
5:
/**
* ...
* @author Meteoric
*/
extends Sprite
11: {
private var x0:Number = 100;
private var y0:Number = 400;
private var x1:Number;
private var y1:Number;
private var x2:Number = 500;
private var y2:Number = 400;
18:
public function DrawCurveDemo()
20: {
21: initView();
22: }
23:
void
25: {
26: addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
27:
28: onEnterFrameHandler();
29: }
30:
void
32: {
33: x1 = mouseX;
34: y1 = mouseY;
35:
36: graphics.clear();
37: graphics.lineStyle(2, 0x3399cc);
38: graphics.moveTo(x0, y0);
39: graphics.curveTo(x1, y1, x2, y2);
40: }
41:
42: }
43:
44: }