字體:小 中 大 | |
|
|
2014/04/17 22:51:34瀏覽1627|回應0|推薦1 | |
嚕嚕嚕,Ejs的教學已經到第五堂課了~ . ((不對吧......那前面呢那幾堂呢?為什麼都沒有看到~ 如果你有這個問題,應該是代表你很(不幸)的提早亂入到這裡wwww . 因為物裡課的下學期也是要寫一些上課學到有關EJS的報告 然後覺得還要弄網頁還要上傳FTP還會不小心把同學的作業蓋掉什麼的實在是太麻煩了 所以乾脆打在部落格算了XD . 期中報告時間快到了,不才沒時間從第一篇寫起,直接往後跳吧 . ((小編表示大家的疑問應該是標題不是說是第六堂課嗎? . 好來好啦,這是第六堂 . 今天要看的是這篇 就是講解說一顆球在一個有摩擦力的地板上轉動,然後會變成什麼樣子 . 這影片是從月亮的教學網頁那裡弄過來的, 雖然是用英文,不才也聽不太懂,但似乎是個很詳細的說明,裡面有提到轉動和移動的不同 影片最後面有說如果掉到有摩擦力的影片為什麼會讓球移動之類的 . 還是一樣,首先是打開Ejs . 然後打開線上圖書館 . 點開"瀏覽目錄",選擇右上方的"Classical Mechanics" 裡面的"Newton's Second Low" 再裡面的"Force,Acceration" 的裡面的Slipping And Rolling Wheel 喔~原來今天要講的事有關輪子的事 (廢話... . 按下下載之後,沒多久他會問你要把這東西存在哪裡 就隨便選一個地方吧 . 按下開啟之後,就會出現這堆東西了 . 先按一下主控台綠綠的撥放件進行模擬 看看這東西到底是幹嘛用的 . 如圖,這是一個模擬物理現象的視窗 上面那個黃黃的是在轉動的球 他會在原地打滾,然後因為摩擦力的關係,球球會向前進 . 然後他會留下軌跡 感覺跟會到處尿尿做記號的小狗差不多 . 然後模擬物理現象的視窗的下面有個記錄表格 . 根據不才的神猜 紅色的應該是角速度 然後黑色的是球體本身的速度 . 佳下來來看看這個模擬球球轉動的小程式是怎麼產生的吧~ 首先他需要兩個視窗 . 上面有鎖鍊(美江興奮了?)的是主視窗 空空的那個是另外一個視窗 . 感覺跟C++的 int main差不多XD . 接著來看看主視窗裡面偶些什麼吧~ 主要來說,drawingPanel是中間有圖片的那堆 controlPanel是向方那一欄有按鈕有輸入框有文字的地方 upperPanel是上方那堆 . DrawingPanel裡面有一些東西 ground是綠色地面 wheelGroup裡面有兩個東西,一個是球體,另一個是球上面那個非常不明顯的小黑點 . 然後rimTrail是記錄軌機用的線 forceArrow是在球的正下方的鍵頭,這裡剛剛好不見了 . controlPanel裡面又有兩個小Panel 一個Panel是裝按鈕用的 另一個是裝小小Panel,裡面有一個文字和輸入框 . 這種類似C++封裝的概念(錯誤的現學現賣) 這種一直用Panel又Panel又Panel包起來的圓音是比較好管理。 排版也比較乾淨 . 這個是上方的Panel 也適用這種方式呢 . 比較要注意的,眼尖大家或許很好奇,範本裡面的球會轉動 怎麼讓他轉動呢? . 原來在wheelGroup裡面又有一個做標, 做標的原點是在原做標的( x , R )上面 新的座標和原座標的角度是-theta . 如果話圖來表示,差不多是這個樣子 . 其中物件Point 和 ball都在薪的座標上 如果 x 的數值加大,球和點就會移動 -theta 值改變,球和點就會轉動 . 恩 . rimTrail是一個記錄軌跡的東西 在圖形表格裡面也常常出線 . 而圖形表格視窗裡面有這些東西 . 有一個話圖形表格的原件 還有一個黑線,一個紅線 . 這個是黑線,是速度對時間 . 這個是紅線,是角速度對時間 . 上面比較重要的是"markerPos" 這是一個二維座標 . 主要是給記錄軌跡的原件使用 . 來看看變數吧 . 這些是一些初始直 . 在參數演話關係裡的微分函數 . 點開下面的事件,可以看到stop Slipping 這段程式碼是說,如果"slipping"不是正確的 ((slipping預設值是True 也就是說,如果slipping=False 就回傳1,0 不然就回傳forceDirection*(omega*R-vx) forceDirection是角速度-球的速度 . 在參數演話關係裡的Transfoem Vector 這段程式碼是把球上面的小點座標傳回來,給記錄球的記錄軌跡用 . 然後這是設定"重新設定時間"的函數 . 這是設定"重新設定滑動"的函數 |
|
( 興趣嗜好|電腦3C ) |