向量負(fù)責(zé)用于計(jì)算力,繪圖庫(kù)負(fù)責(zé)把向量表示出來
下面是勻速圓周運(yùn)動(dòng)的例子
圖片如下:

code
import Vector;
import fbook.graphics.pen.*;
import fbook.graphics.draw2d.*;
import fbook.graphics.draw2d.arrow.*;
import fbook.graphics.GDI;
var cur_mc = this;
//給球的即時(shí)速度,看受力圖時(shí)可加大速度
var vel = new Vector(200, 500);
//速度向量的長(zhǎng)度
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();
??//相加后的長(zhǎng)度
??var len = f2.getLength();
??//單位化
??f2.normal();
??//重新設(shè)置長(zhǎng)度
??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;
??//設(shè)置成原來的速度
??vel.normal()
??vel.setLength(l)
??
}
本文轉(zhuǎn)自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/883.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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