向量負責用于計算力,繪圖庫負責把向量表示出來
下面是勻速圓周運動的例子
圖片如下:

code
import Vector;
import fbook.graphics.pen.*;
import fbook.graphics.draw2d.*;
import fbook.graphics.draw2d.arrow.*;
import fbook.graphics.GDI;
var cur_mc = this;
//給球的即時速度,看受力圖時可加大速度
var vel = new Vector(200, 500);
//速度向量的長度
var l=vel.getLength()
//位置向量
var pos = new Vector(move_mc._x, move_mc._y);
/***繪圖****/
var _p1:IPen = new SolidPen(1, 0x000000, 100);
var _g:GDI = GDI.getInstance();
setInterval(this, "move", 30);
function move() {
??//繩子拉力
??var _lal = new Vector(move_mc._x-top_mc._x, move_mc._y-top_mc._y);
??//向量相加
??var f2 = vel.plusNew(_lal);
??_g.line(_p1, new SolidLineArrow(true, move_mc._x, move_mc._y, vel.x+move_mc._x, vel.y+move_mc._y));
??//半徑
??var r = _lal.getLength();
??//相加后的長度
??var len = f2.getLength();
??//單位化
??f2.normal();
??//重新設置長度
??f2.scale(len-r);
??//改變方向后的速度
??vel.minus(f2);
??var len = vel.getLength();
??_g.target = this.createEmptyMovieClip("mc", 1);
??_g.line(_p1, new SolidLineArrow(true, top_mc._x, top_mc._y, _lal.x+top_mc._x, _lal.y+top_mc._y));
??_g.line(_p1, new SolidLineArrow(true, move_mc._x, move_mc._y, vel.x+move_mc._x, vel.y+move_mc._y));
??//_g.line(_p1, new SolidLineArrow(true, move_mc._x, move_mc._y, f3.x+move_mc._x, f3.y+move_mc._y));
??//_g.line(_p1, new SolidLineArrow(true, top_mc._x, top_mc._y, f.x+top_mc._x, f.y+top_mc._y));
??pos.plus(vel);
??
??move_mc._x = pos.x;
??move_mc._y = pos.y;
??//設置成原來的速度
??vel.normal()
??vel.setLength(l)
??
}
本文轉自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/883.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
