卞龍寶 王洪根
摘要:本文簡(jiǎn)要介紹了通過(guò)Flash交互動(dòng)畫(huà)演示力的動(dòng)態(tài)平衡過(guò)程的意義和方法。
關(guān)鍵詞:Flash;動(dòng)畫(huà);動(dòng)態(tài)平衡;過(guò)程
中圖分類號(hào):G633.7 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-6148(2009)11(S)-0055-2
高中物理教學(xué)中常用圖解法來(lái)分析、解決力的動(dòng)態(tài)平衡問(wèn)題,其基本思路是選擇物體處在動(dòng)態(tài)變化過(guò)程中的幾個(gè)不同典型位置,依據(jù)平衡條件采用同一標(biāo)度作出物體受力圖并疊加在一起,然后據(jù)圖比較確定動(dòng)態(tài)平衡過(guò)程中各力的變化情況及變化趨勢(shì)。圖解法解決力的動(dòng)態(tài)平衡問(wèn)題具有形象、直觀的特點(diǎn)。然而,不難看出圖解法中所謂的“過(guò)程”是通過(guò)幾個(gè)分立、間斷的平衡狀態(tài)來(lái)構(gòu)成的,并不具有連續(xù)性。因此,圖解法并不能讓學(xué)生真正“見(jiàn)證”完整連續(xù)的力的動(dòng)態(tài)平衡過(guò)程及具體細(xì)節(jié)。實(shí)際教學(xué)中,筆者利用Flash MX 2004制作“力的動(dòng)態(tài)平衡過(guò)程動(dòng)畫(huà)演示”教學(xué)軟件(界面如圖1所示),發(fā)揮編程優(yōu)勢(shì)通過(guò)交互動(dòng)畫(huà)實(shí)時(shí)演示,化靜為動(dòng),變間斷為連續(xù),讓學(xué)生"觀察"到了力的動(dòng)態(tài)平衡完整變化過(guò)程及具體細(xì)節(jié),輔助力的動(dòng)態(tài)平衡問(wèn)題教學(xué),收到了良好的效果。下面以圖1中實(shí)例為例簡(jiǎn)要介紹軟件的制作思路以及核心功能語(yǔ)法的實(shí)現(xiàn)。
1 制作思路
圖1中實(shí)例原題為:如圖用一檔板將小球夾在檔板和光滑斜面之間,若緩慢轉(zhuǎn)動(dòng)擋板,使其逆時(shí)針轉(zhuǎn)至水平,試確定此過(guò)程中球?qū)醢宓膲毫扒驅(qū)π泵鎵毫Φ淖兓闆r。
可以分析,因動(dòng)態(tài)平衡過(guò)程中涉及擋板的轉(zhuǎn)動(dòng)及球的移動(dòng),在軟件場(chǎng)景中應(yīng)將球及擋板設(shè)置成獨(dú)立的影片剪輯。因物體所受各力(重力、斜面支持力、擋板彈力)及合力在動(dòng)態(tài)平衡過(guò)程中存在變化,表示這些力的圖示也應(yīng)設(shè)置成單獨(dú)的影片剪輯。另因物體所受各力是作用在物體上的,所以這些影片剪輯必需內(nèi)嵌在物體影片剪輯之中。此外,動(dòng)畫(huà)中還應(yīng)有一個(gè)能交互改變角度參量的按鈕(或拖動(dòng)條),見(jiàn)圖1下方。
2 核心功能語(yǔ)法實(shí)現(xiàn)
軟件設(shè)計(jì)的關(guān)鍵是構(gòu)建兩函數(shù):一是作圖函數(shù),二是刷新函數(shù)。前者的功能是確定球體位置及畫(huà)受力圖,后者的作用是在進(jìn)行交互操作時(shí)對(duì)作圖函數(shù)實(shí)現(xiàn)同步更新。
在本例中,由物體間幾何關(guān)系及力的平行四邊形法則可構(gòu)建如下作圖函數(shù):
function zt(θ) {
radians = θ*Math.PI/180;//將弧度換成角度,θ為擋板與斜面夾角(角度),是本過(guò)程中的控制變量
bo = (radius/2)/Math.sin(radians/2);
//計(jì)算bo間距離,radius為球半徑
od = w*Math.sin(5*Math.PI/6-radians)/Math.sin(radians);
oe = w*Math.sin(Math.PI/6)/Math.sin(radians);
//依據(jù)正弦定理計(jì)算兩分力大小,w為球自身重力大小
b._rotation = -1*θ-30; //設(shè)置擋板(b)轉(zhuǎn)動(dòng)后角度值,30是斜面傾角
with (qiu) {
_x = b._x0+bo*Math.cos(radians/2+Math.PI/6);
_y = b._y0-bo*Math.sin(radians/2+Math.PI/6);
//計(jì)算并設(shè)置球的位置,b._x0、 b._y0為b點(diǎn)橫、縱坐標(biāo)值
fod._rotation = -30;
foe._rotation = -1*θ+150;
//設(shè)置兩分力轉(zhuǎn)動(dòng)后角度值
fod._yscale = od;
foe._yscale = oe;
//設(shè)置兩分力垂直縮放比例,同比對(duì)應(yīng)力大小
}
x1 = b._x0+bo*Math.cos(radians/2+Math.PI/6);
y1 = b._y0-bo*Math.sin(radians/2+Math.PI/6)-w;
//獲取點(diǎn)A坐標(biāo)
x2 = b._x0+bo*Math.cos(radians/2+Math.PI/6)-od*Math.sin(Math.PI/6);
y2 = b._y0-bo*Math.sin(radians/2+Math.PI/6)-od*Math.cos(Math.PI/6);
//獲取點(diǎn)D坐標(biāo)
x3 = b._x0+bo*Math.cos(radians/2+Math.PI/6)-oe*Math.sin(-radians-Math.PI/6);
y3 = b._y0-bo*Math.sin(radians/2+Math.PI/6)+oe*Math.cos(-radians-Math.PI/6);
//獲取點(diǎn)E坐標(biāo)
drawLine(x1, y1, x2, y2, 1);
drawLine(x1, y1, x3, y3, 2);
//借助drawLine ( )函數(shù)在AD及AE間畫(huà)連接虛線
}
對(duì)作圖函數(shù)的刷新是通過(guò)以影片剪輯幀頻不斷觸發(fā)的事件處理函數(shù)onEnterFrame來(lái)實(shí)現(xiàn)的。交互按鈕的語(yǔ)句具體如下:
on (Press) {
pressed = true
startDrag("",true ,left ,top ,right , top )
this.onEnterFrame = function() {
//執(zhí)行onEnterFrame事件處理函數(shù)
if (pressed) {
varθ= (this._x-left)/( right - left)*105+45;
zt(θ)
// 獲取θ并執(zhí)行zt(θ),45為θ初始值
}
}
on (Release) {
pressed = false
stopDrag()
delete this.onEnterFrame
//刪除onEnterFrame,釋放內(nèi)存和CPU占有率
}
在中學(xué)物理教學(xué)中,凡是具有定量關(guān)系的變化規(guī)律,都可以將其中一變量設(shè)置成控制變量,采用上面的模式通過(guò)交互動(dòng)畫(huà)來(lái)形象、直觀地演示相應(yīng)規(guī)律隨控制變量變化的完整動(dòng)態(tài)變化過(guò)程及具體細(xì)節(jié)。
(欄目編輯王柏廬)