AS 绘制多条平滑曲线(基于二次贝塞尔曲线)

[color=red]绘制策略:[/color]在每两对点之间,加入一个新点(中间点)放在这两点的正中间。然后使用这些[color=green]中间点作为起点和终点[/color],而把最初的那[color=green]些点(原始点)作为控制点[/color]。

package
{
import flash.display.Sprite;
import flash.events.MouseEvent;

public class MultiCurves3 extends Sprite
{
private var numPoints:uint = 9;
public function MultiCurves3()
{
init();
}

private function init():void
{
var points:Array = new Array();
for (var i:int = 0; i < numPoints; i++)
{
points[i] = new Object();
points[i].x = Math.random() * stage.stageHeight;
points[i].y = Math.random() * stage.stageHeight;
}

// find the first midpoint and move to it
var xc1:Number = (points[0].x + points[numPoints - 1].x) / 2;
var yc1:Number = (points[0].y + points[numPoints - 1].y) / 2;
graphics.lineStyle(1);
graphics.moveTo(xc1, yc1);

// curve through the rest, stopping at midpoints
for (i = 0; i < numPoints - 1; i ++)
{
var xc:Number = (points[i].x + points[i + 1].x) / 2;
var yc:Number = (points[i].y + points[i + 1].y) / 2;
graphics.curveTo(points[i].x, points[i].y, xc, yc);
}

// curve through the last point, back to the first midpoint
graphics.curveTo(points[i].x, points[i].y, xc1, yc1);
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值