999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ActionScript 的彈性運動虛擬實現

2012-11-22 03:30:24馬鞍山師范高等??茖W校軟件與食品工程系安徽馬鞍山243000
長江大學學報(自科版) 2012年25期

董 娜,俞 欣 (馬鞍山師范高等??茖W校軟件與食品工程系, 安徽 馬鞍山 243000)

基于ActionScript 的彈性運動虛擬實現

董 娜,俞 欣 (馬鞍山師范高等專科學校軟件與食品工程系, 安徽 馬鞍山 243000)

基于ActionScript 編程語言,對一維坐標和二維坐標上從無摩擦力到有摩擦力的彈性運動進行了虛擬實現。研究表明,該程序能準確而直觀地再現彈性運動效果,從而為利用計算機編程技術對物理現象進行準確模擬提供參考。

彈性力學;彈性運動;ActionScript;虛擬技術

計算機技術正在全面進入生產技術、科學研究和社會生活的各個領域,徹底改變著整個人類文明的進程。面向對象(Object Oriented,OO)是上世紀90年代軟件開發方法的主流。ActionScript 3.0 是一種強大的面向對象編程語言,其具有更強的報錯能力,指定類型也更加明確[1]。

求解一個彈性力學問題,應設法確定彈性體中各點的位移、應變和應力等共15個相關函數,但在解決實際問題時,起主要作用的往往是其中幾個函數,因而可以用實驗和數學相結合的方法進行求解[2]。為此,筆者利用ActionScript 3.0對一維、二維彈性運動在一維、二維坐標上的運動狀態進行了模擬,實現了無摩擦力和有摩擦力情況下彈性運動效果,從而為利用計算機編程技術對物理現象進行準確模擬提供參考。

1 一維坐標彈性運動的虛擬實現

彈性運動是彈性力學的一個重要研究領域,它研究彈性物體在外力作用下產生的運動狀態。當皮球落在地面上,由于自身的重力與地面的反作用力,皮球發生形變而產生彈力使皮球從地面上彈起,皮球運動到一定高度,由于地心引力,皮球落回地面并再次發生形變而彈起。使用可以拖拽的小球作為主體。針對上述情況,將x軸的 0 點作為默認位置,使其具有運動到中心點的彈性,并設置一個變量保存彈性的數值,稱之為“彈性系數”[2]。由于較大的彈性系數會使彈性運動顯得十分僵硬,而較小的彈性系數會使彈性運動更加逼真,因而選用彈性系數為0.1:

根據以上思路,假設targetX為100,取前20幀模擬運動情況(見表1)。

利用ActionScript語言實現小球在一維坐標上的無摩擦彈性運動,Springl.as文件如下:

package {

import flash.display.Sprite;

import flash.events.Event;

public class Spring1 extends Sprite {

表1 無摩擦系數時各變量的變化情況

注:dx表示當前位置與目標位置的距離值;ax表

示加速度;vx表示速度向量。下同。

private var ball:Ball;

private var spring:Number = 0.1;

private var targetX:Number = stage.stageWidth/2;

private var vx:Number = 0;

public function Spring1() {

init();

}

private function init():void {

ball = new Ball();

addChild(ball);

ball.y = stage.stageHeight/2;

addEventListener(Event.ENTER_FRAME,

onEnterFrame);

}

private function onEnterFrame(event:Event):void {

var dx:Number = targetX - ball.x;

var ax:Number = dx * spring;

vx += ax;

ball.x += vx;

表2 有摩擦系數時各變量的變化情況

運行以上代碼后發現,沒有摩擦系數時小球一直在原始點左右徘徊。由于小球每次搖擺時的距離相同,所以速度向量也相同,這樣小球會以同樣速度來回擺動。如果引入摩擦力,運動效果將更加逼真,為此設置 friction 變量,friction∈(0,1),取值為 0.95:

private var friction:Number = 0.95;

為了實現小球在有摩擦力效果下的彈性運動,根據以上代碼,將onEnterFrame函數修改為:

private function onEnterFrame(event:Event):void {

var dx:Number = targetX - ball.x;

var ax:Number = dx * spring;

vx += ax; vx *= friction;

ball.x += vx;

}

根據以上思路,模擬有摩擦彈性運動情況,數據如表2所示。

有摩擦系數時小球橫坐標值的變化情況如表3所示。從表3可以看到,小球的橫坐標值從131幀到140幀將逐漸接近于目標位置100,但是無法到達該位置,這時可以設置一個接近范圍,若小球的橫坐標值在該范圍內,便可將橫坐標目標值賦給小球當前橫坐標,從而使小球完全停止。

2 二維坐標彈性運動的虛擬實現

與一維彈性運動虛擬相比較,二維坐標彈性運動時加入了Y軸方向的運動,整個運動是在X坐標和Y坐標上進行的。因此,將一維彈性運動時使用的變量分成X坐標和Y坐標2組分量,相關代碼如下:

表3 有摩擦系數時小球橫坐標值的變化情況

package {

import flash.display.Sprite;

import flash.events.Event;

public class Spring2 extends Sprite {

private var ball:Ball;

private var spring:Number = 0.1;

private var targetX:Number

= stage.stageWidth/2;

private var targetY:Number

= stage.stageHeight/2;

private var vx:Number = 0;

private var vy:Number = 0;

private var friction:Number = 0.95;

public function Spring2() {

init();

}

private function init():void {

ball = new Ball();

addChild(ball);

addEventListener(Event.ENTER_FRAME, onEnterFrame);

}

private function onEnterFrame(event:Event):void {

var dx:Number = targetX - ball.x;

var dy:Number = targetY - ball.y;

var ax:Number = dx * spring;

var ay:Number = dy * spring;

vx += ax;

vy += ay;

vx *= friction;

vy *= friction;

ball.x += vx;

ball.y += vy;

利用以上代碼可以模擬實現二維坐標上具有摩擦力的彈性運動。

3 結 語

基于ActionScript 的編程技術,實現了在一維坐標和二維坐標上的彈性運動,模擬了無摩擦力和有摩擦力條件下的彈性運動。結果表明,該程序能準確而直觀地實現彈性運動效果,從而為利用計算機編程技術對物理現象進行準確模擬提供了一個范例。

[1]朱治國,繆亮,陳艷麗.Flash Action Script 3.0編程技術教程[M].北京:清華大學出版社,2008.

[2]徐芝綸.彈性力學[M].北京:高等教育出版社,2006.

10.3969/j.issn.1673-1409(N).2012.09.036

TP311.1

A

1673-1409(2012)09-N102-03

2012-06-12

安徽省質量工程示范實驗實訓中心基金項目(20101233)。

董娜(1981- ),女,2005年大學畢業,講師,碩士生,現主要從事計算機多媒體技術方面的教學與研究工作。

[編輯] 李啟棟

主站蜘蛛池模板: 久草热视频在线| 2020最新国产精品视频| 国产女人在线| 99中文字幕亚洲一区二区| 久久婷婷国产综合尤物精品| 国产1区2区在线观看| 人妻丰满熟妇啪啪| 波多野结衣无码AV在线| 91亚洲视频下载| 国产精品精品视频| 国产成人精品一区二区不卡| 伊人久久婷婷五月综合97色| 亚洲h视频在线| а∨天堂一区中文字幕| 国产91无码福利在线| 91啦中文字幕| 国产高潮视频在线观看| 亚洲V日韩V无码一区二区| 老司国产精品视频91| 亚洲码一区二区三区| 日本尹人综合香蕉在线观看| 欧美国产中文| av无码久久精品| 精久久久久无码区中文字幕| 色悠久久综合| 9999在线视频| 一级福利视频| 国产成人综合亚洲网址| 国产无码精品在线播放| 视频二区亚洲精品| 欧美精品v| 免费高清毛片| 在线观看无码av免费不卡网站| 91福利一区二区三区| 亚洲系列中文字幕一区二区| 97青青青国产在线播放| 国产成人乱无码视频| 婷婷色中文| 久久婷婷国产综合尤物精品| 中文字幕亚洲乱码熟女1区2区| 乱人伦视频中文字幕在线| 国产91高跟丝袜| 国产精品蜜臀| 在线国产91| 国产免费羞羞视频| 一级毛片网| 99无码中文字幕视频| 国产在线91在线电影| 国产成人亚洲精品无码电影| 国产打屁股免费区网站| 在线国产你懂的| 国产性生交xxxxx免费| 国产欧美在线视频免费| 国产精品视频白浆免费视频| 日韩成人高清无码| 国产一区二区影院| 香蕉久久永久视频| 国产激情无码一区二区APP| 国产精品亚洲а∨天堂免下载| 亚洲欧洲日韩久久狠狠爱 | 国产激情无码一区二区APP | 国产亚洲高清视频| 亚洲视屏在线观看| 日本不卡免费高清视频| 国产日本欧美亚洲精品视| 999精品免费视频| 不卡国产视频第一页| 亚洲精品福利视频| 91精品国产自产在线老师啪l| 国产成人毛片| 噜噜噜久久| 亚洲a级在线观看| 综合色婷婷| 无码人妻免费| 成人亚洲国产| 青青久在线视频免费观看| 久久国产av麻豆| 伊人色在线视频| 亚洲国产日韩视频观看| 色婷婷亚洲十月十月色天| 亚洲国产精品一区二区第一页免 | 日本日韩欧美|