function BEZ(n:int,k:int,t:Number):Number {//基函数 return C(n,k)*Math.pow(t,k)*Math.pow(1-t,n-k);}function C(n:int,k:int):Number {//组合排序 var son:int=jie_cheng(n); var mother:int=jie_cheng(k)*jie_cheng(n-k); return son/mother;}function jie_cheng(i:int):int {//阶乘 var n:int=1; for (var j:int=1; j<=i; j++) { n*=j; } return n;}
var points:Array = [];var sp:Sprite=new Sprite();var n:int = 5;addChild(sp);draw_points(points,n);function P_BEZ(t:Number,sz:Array):Point {//n次 var x_p:Number = 0; var y_p:Number = 0; var n:int = sz.length; for (var i:int=0; i<sz.length; i++) { var b:Number = BEZ(n - 1,i,t); x_p += sz[i].x * b; y_p+=sz[i].y*b; } return (new Point(x_p,y_p));}function BEZ(n:int,k:int,t:Number):Number {//基函数 return C(n,k)*Math.pow(t,k)*Math.pow(1-t,n-k);}function C(n:int,k:int):Number {//组合排序 var son:int=jie_cheng(n); var mother:int=jie_cheng(k)*jie_cheng(n-k); return son/mother;}function jie_cheng(i:int):int {//阶乘 var n:int=1; for (var j:int=1; j<=i; j++) { n*=j; } return n;}function draw_points(sz:Array,n:int):void { sz.length=0; for (var i:int=0; i<=n; i++) { sz[i]=new Point(800*Math.random(),500*Math.random()); draw_point(sz[i]); } draw_lines(sz); sp.graphics.lineStyle(2,0xff0000); var p:Point=P_BEZ(0,sz); sp.graphics.moveTo(p.x,p.y); for (var j:Number=0; j<1; j+=0.01) { p=P_BEZ(j,sz); sp.graphics.lineTo(p.x,p.y); } p=P_BEZ(1,sz); sp.graphics.lineTo(p.x,p.y);}function draw_point(p:Point):void {//画点 sp.graphics.lineStyle(0); sp.graphics.drawCircle(p.x,p.y,3);}function draw_lines(sz:Array):void {//画边 sp.graphics.lineStyle(0,0,0.3); sp.graphics.moveTo(sz[0].x,sz[0].y); for (var i:int=0; i<sz.length; i++) { var p:Point=sz[i]; sp.graphics.lineTo(p.x,p.y); }}
联系客服