西北師范大學教育技術與傳播學院 甘肅蘭州 730070
【摘要】本文根據教學設計中“呈現過程”是掌握原理性知識的最高“境界”的思想,介紹利用Visual Basic語言模擬單位圓、正弦線和標準正弦函數圖象于同一動畫的設計思想,并為實現該模擬過程提供技術支持。
【關鍵詞】Visual Basic,模擬,正弦線,正弦函數,課件開發
【中圖分類號】G436【文獻標識碼】B【論文編號】1009—8097(2007)07—0076—04
一、引言
計算機輔助教學是教育信息化的重要內容,利用多媒體技術可以將事物的多樣性、變化性和運動性等特點,形象、生動并直觀地展現出來。如果能夠恰當地利用該技術進行教學,可以幫助學生突破教學過程中的難點和重點,有效地提高學生對知識的理解水平,使學生對所學知識達到“知其然也知其所以然”的程度。
二、模擬單位圓、正弦線和標準正弦函數圖象于同一動畫的設計思想
單位圓,正弦線及標準正弦函數圖象是高中代數第一冊(下)第四章三角函數中的核心知識點,也是學生較為熟悉的內容,學生都會說:“單位圓就是一個半徑為1的圓,正弦線也就是斜邊為1的直角三角形的當前內角所對應直角邊的長度,標準正弦函數圖象就是y=sinx曲線。”當教師概括該內容為“三位一體”時,學生表現出不理解:“標準正弦函數圖象與單位圓有什么聯系,與正弦線又有什么關系?”通過對該學習內容分析得出單位圓、正弦線和標準正弦函數圖象三者的統一屬于原理性知識。根據“教學內容—教學目標—教學媒體使用目標關系圖”(圖1)可知“呈現過程”是掌握原理性知識的最高“境界”[1],對于該內容的學習可以利用Visual Basic 語言(以下簡稱“vb”)模擬單位圓、正弦線和標準正弦函數圖象于同一動畫中,分步展現由單位圓轉化為標準正弦函數圖象的動畫過程。因為單位圓和標準正弦函數圖象是同一自變量以不同的表示方式(圓心角度值和線性弧度數)來表示同一正弦線的兩種形式,所以該課件設計從熟悉的單位圓入手,從0度開始以15度為步長表示出各圓心角對應長度的正弦線,然后,將在單位圓中畫出的每條正弦線依次、長度不變的水平移動到二維直角坐標系中(圖2、圖3),形成標準正弦函數y=sinx圖象的輪廓圖(圖4)。在整個動畫過程中,由每條正弦線所對應角的角度值(顯示在白色框內)而決定這條正弦線平移的終點位置為x正半軸上的特定弧度數(完全等同于該角度值,如5π/12等同于75度)。學生借助該動畫可形象地建構起單位圓、正弦線和標準正弦函數圖象三者的統一關系。


三、軟件設計的流程結構與關鍵技術實現
(一)軟件設計的流程結構
1.新建工程文件及設置窗體屬性
①新建一個工程文件。
②設置窗體屬性。將窗體form1的Height屬性設置為9105,同樣Width 為12000、ScaleMode 為 0、ScaleWidth 為14、scalehight 為 -10.5、ScaleLeft 為 -6、ScaleTop 為6。這樣可以把演示窗體設置為符合人們習慣的標準二維坐標系(窗體的寬度為14個單位,高度為10.5個單位)。
2.向窗體中添加對象及設置各對象屬性
①在窗體的左上方添加2個CommandButton控件,名稱屬性分別為command1和command2, caption屬性分別為“初始化”和“y=sinx圖象形成過程”, 在窗體右下方添加2個CommandButton控件,用于控制(暫停和繼續)和退出程序。(如圖2)。
②添加一個Picturebox控件,名稱屬性為Picture1,用于在該對象上顯示自變量x的當前角度值。
③添加label控件,根據需要確定其個數,設置其caption屬性用于對課件必要的語言描述。所添加的控件可通過調試程序來確定在窗體中的具體位置。
3.為過程編寫代碼
①定義所用到的常量和變量。
Dim x, y, f1 As Double
Dim strtemp As String
Const pi = 3.14159
Dim a, b, m, f, p, n, j, o, l, z As Single
Dim Pause As Boolean, I As Long
Dim flag As Integer
②該過程用于將窗體設置為活動窗體,啟動的同時加載坐標函數和畫單位圓。
Private Sub Form_Activate()
BackColor = RGB(168, 168, 168)
Call zuobiao
Circle (-2, 0), 1
Pause = False
Command4.Enabled = False
Command4.Caption = \"暫停\"
End Sub
Private Sub Form_Load()
Label1.Visible = False
End Sub
③當程序(課件)運行完畢后,需要重新運行時,該過程具有清屏、重新加載坐標函數、畫單位圓的功能。
Private Sub Command1_Click()
Set Form1 = Nothing'釋放內存
Unload Me
Load Me
Form1.Show
End Sub
④該過程根據y=sinx在“0—2π”一個周期內的四段不同函數圖象的特征以不同的參數調用核心函數zxxian(m, a, n, j, o)四次,最后用描點法勾畫出正弦標準曲線圖。
Private Sub Command2_Click()
Command4.Enabled = True
Call zxxian(0, 1, pi * 5 / 12, 1, 0.0005)
Call zxxian(pi / 2, -1, pi * 5 / 12, 1, 0.001)
Call zxxian(pi, -1, pi * 5 / 12, -1, 0.0016)
Call zxxian(3 * pi / 2, 1, pi * 6 / 12, -1, 0.0016)
'Call zuobiao
For x = 0 To 2 * pi Step 0.01
PSet (x, Sin(x)), RGB(255, 0, 0)
Next x
Line (-2, 0)-(-1, 0)
Label1.Visible = True
Command4.Enabled = False
End Sub
⑤該過程的功能是控制課件運行進程。
Private Sub Command4_Click()
Pause = Not Pause
If Command4.Caption = \"暫停\" Then Command4.Caption = \"繼續\" Else: Command4.Caption = \"暫停\"
End Sub
⑥該過程的功能是退出課件。
Private Sub Command3_Click()
End
End Sub
(二)坐標和核心函數
1.坐標系函數zuobiao()的形成
該函數用于在演示窗體中畫出二維直角坐標系,由于用到多次的Line() 、Pset()、CurrentY 、CurrentX、Print等函數及方法,篇幅較長,不便逐一寫出,采用略寫方式。
Public Sub zuobiao()
……
End Sub
2.核心函數zxxian(m, a, n, j, o)的形成
該函數為呈現由正弦線平移位置而形成標準正弦函數圖象輪廓的動態過程,可根據需要,設置相應的參數而調用。代碼由多重嵌套的“for—next”語句組成,表示如下:
Public Sub zxxian(m, a, n, j, o)
For p = 0 To n Step pi / 12
For l = 0 To 10000 Step 0.01
Next l
f1 = (m + p) * 180 / pi
Picture1.Print Str(f1) + \"度\"
For x = -2 + a * Sqr(1 - (Sin(m - p) ^ 2)) To m + p Step o
Line (-2, 0)-(-2 + a * Sqr(1 - Sin(m - p) ^ 2), Sin(m + p)), RGB(0, 0, 255) '畫半徑線
Line (-2 + a * Sqr(1 - (Sin(m - p) ^ 2)), 0)-(-2 + a * Sqr(1 - (Sin(m - p) ^ 2)), Sin(m + p)), RGB(0, 0, 255) '畫正弦線
Circle (-2, 0), 0.3, RGB(255, 0, 0), 0, (m + p - 0.01)'角度表示
Line (x, 0)-(x, Sin(m + p)), RGB(0, 0, 255)'畫移動的正弦線
For b = 1 To 1000 Step 0.1
Next b
Line (x, 0)-(x, Sin(m + p)), RGB(168, 168, 168)'取消移動的正弦線
For f = 0 To m + p - pi / 6 Step pi / 12 ' 補畫右半軸畫好的正弦線
Line (f, 0)-(f, Sin(f)), RGB(0, 0, 255)
Next f
Circle (-2, 0), 1' 補畫單位圓及破壞的坐標軸
Line (-3, 0)-(7, 0)
Line (0, -1)-(0, 1)
Line (-2, 0)-(-1, 0), RGB(0, 0, 255)'畫坐標軸上的半徑線
DrawWidth = 1
Line (-pi / 6, 0)-(-pi / 6, 0.2)
DrawWidth = 2
Next x
Call zuobiao
For z = 0 To p Step pi / 12' 再次補畫右半軸畫好的正弦線
Line (m + z, 0)-(m + z, Sin(m + z)), RGB(0, 0, 255)
Next z
DoEvents' 多線程控制
Do While Pause = True
DoEvents
Loop
Line (-2, 0)-(-2 + a * Sqr(1 - Sin(m - p) ^ 2), Sin(m + p)), RGB(168, 168, 168) ' 取消半徑線
Line (-2 + a * Sqr(1 - (Sin(m - p) ^ 2)), 0)-(-2 + a * Sqr(1 - (Sin(m - p) ^ 2)), Sin(m + p)), RGB(168, 168, 168)'取消正弦線
Picture1.Cls
For l = 0 To 10000 Step 0.01
Next l
Next p
End Sub
四、結論
鑒于vb面向對象,簡單易學易用的特點,針對教學中一些抽象的、無法進行實驗的原理性知識點,vb可以做到較為真實的模擬實驗,呈現動態過程。現在大多數高校畢業生已初步掌握vb基礎知識,啟示廣大教師用運所學過vb知識開發出更多高質量的教學軟件,實現信息技術與課程的深層次整合。
參考文獻
[1] 南國農.信息化教育概論[M].北京:高等教育出版社,2004.
The Development of the Courseware of Applying Visual Basic Language to Simulating “Drawing Image of Sine Function with Sine Line”
Wu HuaishengLi Xiuming
The College of Educational Technology and Communication in NorthWest Normal University, Lanzhou Gansu, 730070
Abstract : According to the theory that “the process of displaying” is the highest “state”of mastering the knowledge of principles, the paper introduces the design thought of applying Visual Basic Language to simulating the unit circle, the sine line and the standard sine function in the same animation and provides technical supports for the realization of the process of the simulation.
Keywords : Visual Basic, Simulation,Sine Line,Sine Function ,Development of Courseware