2019年4月11日 星期四

電磁波示意圖

作者:王一哲
日期:2019/4/11

本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案。
1. 電磁波示意圖 https://ggbm.at/aetrezwe
2. 電磁波示意圖(使用參數式) https://ggbm.at/j3zrheab





電磁波示意圖動畫





繪圖步驟


  1. 由於電場、磁場、電磁波前進方向三者互相垂直,必須開啟3D繪圖區才能顯示圖形,我們先由檢視3D繪圖區或是快速鍵Ctrl+Shift+3開啟3D繪圖區。
  2. 先定義下列的變數:振幅 A = 2、波長 λ = 4、週期 T = 1、角波數 $k = \frac{2 \pi}{\lambda}$、角頻率 $\omega = \frac{2 \pi}{T}$。
  3. 新增代表時間 t 的數值滑桿,最小值為0,最大值為T,增量為0.01T,動畫效果預設為遞增
  4. t = Slider(0, T, 0.01*T)
    
  5. 由於我希望電磁波沿著 +x 軸方向前進,若電場沿著 z 軸方向振動,則磁場必須沿著 y 軸方向振動,先用以下指令畫出磁場的波形。
  6. B(x) = If(0 <= x <= 3*λ, A sin(k*x - ω*t + 180°))
    
  7. 為了畫出磁場的振動位移,我先在 x 軸上每隔一段距離取一個點,將一個波長平均分為8等份,再於 B(x) 上畫出對應的點,最後用向量畫出箭頭。
  8. num = 4 * 2 * 3
    points = Sequence(Point({3*λ / num*i, 0, 0}), i, 1, num)
    points_B = Sequence(Point({3*λ / num*i, B(3*λ / num*i), 0}), i, 1, num)
    arrows_B = Sequence(Vector(points(i), points_B(i)), i, 1, num)
    




步驟 1 ~ 5 成果



  1. 接著畫出電場的波形,有兩種方法,第一種是利用 Rotate 指令將 B(x) 轉 -90°,但是如果直接開啟用這個方法繪製的檔案,旋轉後波形的繪圖範圍會跑掉,需要先開啟 GeoGebra 之後再將檔案拖曳到程式中開啟才能正常顯示;第二種方法則是用參數式繪圖,數學上常用的參數代號是 t,但由於 t 已經被用來代表時間,因此改用 u,比較推薦這個方法。
  2. 旋轉:E(x) = Rotate(B, -90°, xAxis)
    參數式:E(x) = Curve((u, 0, A sin(k*u - ω*t)), u, 0, 3*λ)
    
  3. 仿照步驟5的作法畫出電場的振動位移。
  4. points_E = Sequence(Point({3*λ / num*i, E(3*λ / num*i), 0}), i, 1, num)
    arrows_E = Sequence(Vector(points(i), points_E(i)), i, 1, num)
    
  5. 最後用插入文字工具於圖上標示電場 E 和磁場 B。


最終成果



  1. 在左側的數值 t 上按滑鼠右鍵選擇開始動畫就可以看到下圖的效果。如果要將檔案匯出成 gif 檔,路徑為檔案匯出動態 GIF 檔


動畫選單




電磁波示意圖動畫





相關指令的官方說明書


  1. 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
  2. 序列 https://wiki.geogebra.org/en/Sequence_Command
  3. https://wiki.geogebra.org/en/Point_Command
  4. 向量 https://wiki.geogebra.org/en/Vector_Command
  5. 旋轉 https://wiki.geogebra.org/en/Rotate_Command
  6. 曲線 https://wiki.geogebra.org/en/Curve_Command





HackMD 版本連結:https://hackmd.io/s/SkEVJ5jYV

沒有留言:

張貼留言