Try   HackMD

惠更斯原理示意圖

作者:王一哲
日期:2018/2/5

本次課程檔案已上傳至 GeoGebraTube,可以線上操作或下載檔案

  1. 惠更斯原理範例 圓形 https://ggbm.at/mXYFuB7k
  2. 惠更斯原理範例 圓形動畫 https://ggbm.at/gBV2yAeE

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
使用 LibreOffice Draw 繪製的惠更斯原理示意圖

球面波示意圖繪圖步驟

  1. 新增控制波長 λ 的數值滑桿
    ​​​​λ = Slider(0.5, 2, 0.1)
    

  1. 新增控制點波源數量 n 的數值滑桿
    ​​​​n = Slider(4, 25, 1)
    

  1. 新增點波源O的位置
    ​​​​O = Point({0, 0})
    

  1. 畫出第1個球面波前位置,為了讓視覺效果稍微好一點,我是選擇半徑 2λ 處作為第1個球面波前位置
    ​​​​c = Circle(O, 2*λ)
    

  1. 畫出第1個球面波前上的點波源

    ​​​​source = Sequence(Point(c, i), i, 0, 1, 1 / n)
    

    上式中 Point(c, i) 是指在二次曲線 c 上面畫點,i 用來指定畫點的位置。Sequence 當中的 i, 0, 1, 1 / n 是指將二次曲線 c 分成 n 等分,每隔相同的距離畫一個點。

  2. 以第1個球面波前上的點波源為圓心,畫出向外傳播的球面波

    ​​​​wave = Sequence(Circle(Element(source, i), λ), i, 0, n, 1)
    

    上式中 Element(source, i) 是將串列 source 當中的第 i 個元素取出,丟到 Circle 指令當中作為圓心。

  3. 畫出第2個球面波前位置

    ​​​​c = Circle(O, 3*λ)
    

    再將每個元件調整成自己喜歡的樣子之後,成果如下圖,但是會有往內部傳播的球面波,看起來有點醜。


Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
惠更斯原理球面波示意圖:沒有擋住中心

  1. 為了擋住往內部傳播的球面波,再畫出一個圓形,半徑比 2λ 稍微小一點,圓形內部填滿為白色100%。 加上這個圓形之後圖形比較不會那麼雜亂。
    ​​​​e = Circle(O, 2*λ - 0.1)
    

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
圓形的屬性視窗

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
惠更斯原理球面波示意圖:擋住中心

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
惠更斯原理球面波示意圖:改變波長 λ

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
惠更斯原理球面波示意圖:改變點波源數量 n

球面波傳播過程動畫繪圖步驟

  1. 設定波長 λ = 2、點波源數量 n = 25、週期 T = 2。新增點波源O的位置
    ​​​​O = Point({0, 0})
    

  1. 新增控制時間 t 的數值滑桿,最小值0,最大值 2T,增量0.1。

    ​​​​t = Slider(0, 2*T, 0.1)
    

    開啟 t 的屬性視窗,調整動畫速度為1,重複為遞增1次。其實可以在上一行的指令同時設定這兩樣,但是指令長度會增加很多,並不方便。

  2. 畫出第1個球面波前位置

    ​​​​c = Circle(O, 2*λ)
    

  1. 畫出第1個球面波前上的點波源
    ​​​​s_1 = Sequence(Point(c, i), i, 0, 1, 1 / n)
    

  1. 設定從第1個球面波前上的點波源向外傳播的球面波半徑

    ​​​​r_1 = If(t <= T, λ*t / T, λ)
    

    當 t ≤ T時,半徑隨時間增加;1個週期後固定為 λ。

  2. 以第1個球面波前上的點波源為圓心,畫出向外傳播的球面波

    ​​​​w_1 = Sequence(Circle(Element(s_1, i), r_1), i, 0, n, 1)
    

  1. 當時間 t ≥ T 時,畫出第2個球面波前位置
    ​​​​d = If(t >= T, Circle(O, 3*λ))
    
    下圖為到這個步驟為止的成果。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
球面波傳播過程動畫到步驟7為止的成果

  1. 畫出第2個球面波前上的點波源
    ​​​​s_2 = Sequence(Point(d, i), i, 0, 1, 1 / n)
    

  1. 設定從第2個球面波前上的點波源向外傳播的球面波半徑

    ​​​​r_2 = If(T <= t <= 2*T, λ*(t / T - 1), λ)
    

    當 T ≤ t ≤ 2T 時,半徑隨時間增加;2個週期後固定為 λ。

  2. 以第2個球面波前上的點波源為圓心,畫出向外傳播的球面波

    ​​​​w_2 = Sequence(Circle(Element(s_2, i), r_2), i, 0, n, 1)
    

  1. 當時間 t ≥ 2T 時,畫出第3個球面波前位置
    ​​​​e = If(t >= 2*T, Circle(O, 4*λ))
    

  1. 加上一個會隨著時間往外擴張的圓形
    ​​​​f = If(t > 0, Circle(O, (2 + t / T)*λ))
    

  1. 加上內部填滿為白色為圓形,用來擋住往內部傳播的球面波。
    ​​​​g = Circle(O, 2*λ - 0.1)
    ​​​​h = Circle(O, 3*λ - 0.1)
    

  1. 開始動畫,成果如下圖。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
球面波傳播過程動畫

相關指令的官方說明書

  1. 數值滑桿 https://wiki.geogebra.org/en/Slider_Command
  2. https://wiki.geogebra.org/en/Point_Command
  3. 串列 https://wiki.geogebra.org/en/Sequence_Command
  4. https://wiki.geogebra.org/en/Circle_Command
  5. 元素 https://wiki.geogebra.org/en/Element_Command


tags:GeoGebra