久久天天躁狠狠躁夜夜躁,国产精品入口福利,97久久精品人人爽人人爽蜜臀 ,中文字幕国产精品一区二区

當前位置首頁 > 初中物理 > 輔導探討

折射和反射規律的flash動畫,你值得擁有!!

更新時間:2024-04-14 文章作者:佚名 信息來源:網絡整理 閱讀次數:

這是一個反映光的折射和反射規律的Flash動畫。 其效果主要是通過編程來實現的。 教程詳細介紹了它。 希望對大家有幫助!8Qi物理好資源網(原物理ok網)

可以看到,整個flash動畫大致由三部分組成:8Qi物理好資源網(原物理ok網)

1. 基本組成:反射光、折射光、法線(垂直于界面的光)、光源、界面8Qi物理好資源網(原物理ok網)

2. 多角度展示8Qi物理好資源網(原物理ok網)

3.動畫的實現8Qi物理好資源網(原物理ok網)

在這三個部分中,本教程將重點介紹第三部分,并詳細講解整個編程思想。 好了,廢話不多說,我們現在開始吧。8Qi物理好資源網(原物理ok網)

1、基礎部件的制作8Qi物理好資源網(原物理ok網)

這一步主要是利用flash繪圖工具完成的。 繪制反射光線、折射光線、法線、界面的方法都是一樣的,所以只舉一個例子就夠了,比如繪制界面:8Qi物理好資源網(原物理ok網)

1. 在工具區域中選擇直線工具。 線條粗細為默認值。 在主場景中按住Shifi鍵,向下畫一條適當長度的線段。8Qi物理好資源網(原物理ok網)

2、選中線段全反射的條件,右鍵-轉換為元件-影片剪輯,如圖所示設置其參數,將其轉換為影片剪輯。8Qi物理好資源網(原物理ok網)

3、雙擊界面組件進入編輯狀態,選擇工具欄中的文本工具,在界面組件適當位置添加文字描述,如圖所示。8Qi物理好資源網(原物理ok網)

其他繪制方法相同,區別在于:8Qi物理好資源網(原物理ok網)

1、法線按照物理畫法用虛線畫出。 這可以在場景底部的屬性欄中設置。 選擇描邊樣式,如圖所示。8Qi物理好資源網(原物理ok網)

2. 將折射光線和反射光線的注冊點選擇在左中位置怎么樣? 所有組件都畫好了嗎? 現在讓我們命名每個組件。 這個命名與轉換成組件時的命名不同。 這個命名將在腳本中使用。將每個組件拖入場景中,分別選擇組件,然后選擇場景下方的屬性 - 命名剪輯名稱。 按照漢語拼音習慣命名。 例如,接口名為fjm,如圖所示。8Qi物理好資源網(原物理ok網)

其他的命名相同,反射光命名為fs,折射光命名為zs,法線命名為fx。 至于發光的光源,我是用工具欄上的矩形工具畫出來的。 太丑了。 你畫得比我好。 同樣,繪制完成后,選中它,右鍵-轉換為組件-影片剪輯,命名為jg(激光)。你可能會問,入射光呢? 別擔心,這個燈是用腳本實現的。8Qi物理好資源網(原物理ok網)

2、顯示文字的制作8Qi物理好資源網(原物理ok網)

這一步涉及到文本工具中動態文本和靜態文本的使用8Qi物理好資源網(原物理ok網)

1. 選擇文本工具。 此時的文本工具默認為靜態文本。 單擊場景的右上角。 單擊位置將出現一個文本框。 在其中輸入“入射角”一詞。8Qi物理好資源網(原物理ok網)

2、同樣選擇文本工具,選擇場景下方的屬性對話框,點擊文本類型下拉菜單,會出現三個選項,靜態文本、動態文本、輸入文本。 這里選擇動態文本來動態顯示入射角的值。 上一步文字“入射角”后,按住左鍵拉出一個文本框,選擇該文本框,選擇下面的屬性,將變量命名為rsj(入射角),如圖數字8Qi物理好資源網(原物理ok網)

最后,使用靜態文本在動態文本后輸入單位“度”。 基本方法是這樣的。 之后,依次完成折射角(zsj)、反射角(fsj)、臨界角(ljj)的顯示文字。 效果如圖。8Qi物理好資源網(原物理ok網)

3.動畫的實現8Qi物理好資源網(原物理ok網)

1 理論分析8Qi物理好資源網(原物理ok網)

這部分主要是腳本。 讓我們首先熟悉一些折射定律。 高中物理告訴我們,當一束光從光密介質到光稀疏介質時(比如從水或玻璃到空氣中),可能會發生全反射(此時只有反射光),條件是光在光密介質中的入射角大于臨界角(如果不是很清楚,可以看看物理課本,我這里基本上只是給出結論),臨界計算公式sinC= 1/n (n為折射率),即C=(1/n),光線與空氣中法線的夾角i和光線與介質中法線的夾角r滿足折射定律公式n=sin(i)/sin(r),所以有i=(n*sin(r)。至于其他反射光,就簡單了,入射角等于反射角。根據能量守恒定律,入射光的總能量=折射光的能量+反射光的能量,反射光的能量將通過其透明度(alpha值)來反射。8Qi物理好資源網(原物理ok網)

2. 代碼分析8Qi物理好資源網(原物理ok網)

完整代碼如下8Qi物理好資源網(原物理ok網)

fjm._y=200;8Qi物理好資源網(原物理ok網)

fx._x=250;8Qi物理好資源網(原物理ok網)

zs._x=250;8Qi物理好資源網(原物理ok網)

zs._y=200;8Qi物理好資源網(原物理ok網)

fs._x=250;8Qi物理好資源網(原物理ok網)

fs._y=200;8Qi物理好資源網(原物理ok網)

n=1.5;8Qi物理好資源網(原物理ok網)

=(){8Qi物理好資源網(原物理ok網)

jg.=(){8Qi物理好資源網(原物理ok網)

這個。(真,0,200,500,500);8Qi物理好資源網(原物理ok網)

全反射的條件8Qi物理好資源網(原物理ok網)

};8Qi物理好資源網(原物理ok網)

jg.=(){8Qi物理好資源網(原物理ok網)

這。();8Qi物理好資源網(原物理ok網)

};8Qi物理好資源網(原物理ok網)

這個。(“MC”,100);8Qi物理好資源網(原物理ok網)

MC.(2,,100);8Qi物理好資源網(原物理ok網)

MC.(250,200);8Qi物理好資源網(原物理ok網)

x=jg._x;8Qi物理好資源網(原物理ok網)

y=jg._y;8Qi物理好資源網(原物理ok網)

mc.(x,y);8Qi物理好資源網(原物理ok網)

A=Math.atan2(y-200,x-250);8Qi物理好資源網(原物理ok網)

jg.=A*180/Math.PI+180;8Qi物理好資源網(原物理ok網)

C=Math.asin(1/n);8Qi物理好資源網(原物理ok網)

ljj=Math.round(C*180*10/Math.PI)/10;8Qi物理好資源網(原物理ok網)

if(xr=A-Math.PI/2;8Qi物理好資源網(原物理ok網)

if(ri=Math.asin(n*Math.sin(r));8Qi物理好資源網(原物理ok網)

zs.=-90+i*180/Math.PI;8Qi物理好資源網(原物理ok網)

zs.=100-i*60;8Qi物理好資源網(原物理ok網)

}別的{8Qi物理好資源網(原物理ok網)

zs.=0;8Qi物理好資源網(原物理ok網)

}(x>250){8Qi物理好資源網(原物理ok網)

r=Math.PI/2-A;8Qi物理好資源網(原物理ok網)

如果(ri=&nbs8Qi物理好資源網(原物理ok網)

p;Math.asin(n*Math.sin(r));8Qi物理好資源網(原物理ok網)

zs.=-90-i*180/Math.PI;8Qi物理好資源網(原物理ok網)

zs.=100-i*60;8Qi物理好資源網(原物理ok網)

}別的{8Qi物理好資源網(原物理ok網)

zs.=0;8Qi物理好資源網(原物理ok網)

fs.=180-A*180/Math.PI;8Qi物理好資源網(原物理ok網)

rsj=Math.round(r*180*10/Math.PI)/10;8Qi物理好資源網(原物理ok網)

if(rzsj=Math.round(i*180*10/Math.PI)/10;8Qi物理好資源網(原物理ok網)

}別的{8Qi物理好資源網(原物理ok網)

zsj="全反射";8Qi物理好資源網(原物理ok網)

fsj=Math.round(r*180*10/Math.PI)/10;8Qi物理好資源網(原物理ok網)

fs.=i*60;8Qi物理好資源網(原物理ok網)

};8Qi物理好資源網(原物理ok網)

好了,我們開始分析代碼是怎么寫的。 我們先看一張圖片。8Qi物理好資源網(原物理ok網)

可以看到,我利用界面和法線將場景劃分為4個區域,相當于數學中的第一到第四象限。 我首先在代碼中進行了如下初始化。8Qi物理好資源網(原物理ok網)

fjm._y=200;8Qi物理好資源網(原物理ok網)

全反射的條件8Qi物理好資源網(原物理ok網)

fx._x=250;8Qi物理好資源網(原物理ok網)

//從上面可以看出,交點相當于坐標原點(250, 200)8Qi物理好資源網(原物理ok網)

//折射光線和反射光線的x、y坐標分別為250和200(即坐標原點)8Qi物理好資源網(原物理ok網)

zs._x=250;8Qi物理好資源網(原物理ok網)

zs._y=200;8Qi物理好資源網(原物理ok網)

fs._x=250;8Qi物理好資源網(原物理ok網)

fs._y=200;8Qi物理好資源網(原物理ok網)

從上面的初始化我們可以知道,折射光線和反射光線的配準點一定在左邊(參見組件制作)。 同時從圖中可以看出,入射光線只能在第3、第4象限內,也就是說光源只能在第3、第4象限內移動,所以光源(激光jg)組件只能拖到平面下方。 最好不要離開左右兩側的場景。 代碼是8Qi物理好資源網(原物理ok網)

這個。(真,0,200,500,500);8Qi物理好資源網(原物理ok網)

接下來,我們需要解決入射角和折射角之間的關系。 讓我們看另一張圖片。8Qi物理好資源網(原物理ok網)

在這張截圖中,入射光線在第三象限全反射的條件,對應的折射光線在第一象限,閃光燈的旋轉是通過其屬性來實現的。 該屬性表示指定影片剪輯相對于其原始方向的旋轉程度(以度為單位)。 。 0到180之間的值表示順時針旋轉; 0到-180之間的值代表逆時針旋轉。所以首先我們需要獲取入射光的旋轉角度A,但是上面的組件中沒有入射光。 它是怎么發生的? 其實就是用下面的代碼繪制的8Qi物理好資源網(原物理ok網)

這個。(“MC”,100);8Qi物理好資源網(原物理ok網)

MC.(2,,100);8Qi物理好資源網(原物理ok網)

MC.(250,200);8Qi物理好資源網(原物理ok網)

x=jg._x;8Qi物理好資源網(原物理ok網)

y=jg._y;8Qi物理好資源網(原物理ok網)

mc.(x,y);8Qi物理好資源網(原物理ok網)

那么A可以利用反三角函數得到代碼為8Qi物理好資源網(原物理ok網)

A=Math.atan2(y-200,x-250);8Qi物理好資源網(原物理ok網)

從圖中可以看出,其真實入射角為r=A-Math.PI/2; 其折射角i=Math.asin(1.5*Math.sin(r))。 從圖中可以看出折射光的旋轉角度應該是-90+i*180/Math.PI,對應的代碼為8Qi物理好資源網(原物理ok網)

if(xr=A-Math.PI/2;8Qi物理好資源網(原物理ok網)

if(ri=Math.asin(n*Math.sin(r));8Qi物理好資源網(原物理ok網)

zs.=-90+i*180/Math.PI;8Qi物理好資源網(原物理ok網)

zs.=100-i*60;8Qi物理好資源網(原物理ok網)

}別的{8Qi物理好資源網(原物理ok網)

zs.=0;8Qi物理好資源網(原物理ok網)

你可能會問,zs。 = 100-i*60; 這句話的算法是什么? 根據物理定律,折射角越大,其能量越小。 當折射為90度時,就會發生全反射,對應的折射光的能量為零,在動畫中體現為其值越來越小。 根據實際計算,是zs。 = 100-i*63.7,不過考慮到實際效果,算了,就這樣吧。 相反,反射光的能量越來越大。 當發生全反射時,能量最大,等于入射光的強度。 使用代碼 fs。 = i*60 來實現它。 這個怎么樣? 清楚嗎?8Qi物理好資源網(原物理ok網)

其余的是當入射光在第四象限時。 另請看類似的圖片。8Qi物理好資源網(原物理ok網)

對應代碼如下8Qi物理好資源網(原物理ok網)

}(x>250){8Qi物理好資源網(原物理ok網)

r=Math.PI/2-A;8Qi物理好資源網(原物理ok網)

if(ri=Math.asin(n*Math.sin(r));8Qi物理好資源網(原物理ok網)

zs.=-90-i*180/Math.PI;8Qi物理好資源網(原物理ok網)

zs.=100-i*60;8Qi物理好資源網(原物理ok網)

}別的{8Qi物理好資源網(原物理ok網)

zs.=0;8Qi物理好資源網(原物理ok網)

最后,我們解決了最簡單的反射光旋轉問題。 其實從倒數第三張圖就可以很容易得到代碼:8Qi物理好資源網(原物理ok網)

fs.=180-A*180/Math.PI;8Qi物理好資源網(原物理ok網)

發表評論

統計代碼放這里
主站蜘蛛池模板: 辰溪县| 滨州市| 定远县| 普定县| 黔西| 黔西县| 大竹县| 石狮市| 吴堡县| 大冶市| 肥城市| 越西县| 平山县| 建德市| 舟山市| 霞浦县| 吉木萨尔县| 运城市| 兴国县| 鄂尔多斯市| 新蔡县| 十堰市| 金坛市| 北京市| 长垣县| 额济纳旗| 克东县| 南川市| 微山县| 龙里县| 寿光市| 宾川县| 涡阳县| 枣阳市| 普安县| 泾阳县| 九龙城区| 太保市| 镇康县| 岫岩| 中阳县|