二、定制正弦型函数图象
虽然上面的方法制作起来简单快捷,但其中的不便之处也是显而易见的。那就是它不能按我们上课的实际需要精确演示函数图象。在教学实际中,我们经常要根据不同的A、ω、φ值画出准确的y=Asin(ωx+φ)图象。显然,上面的方法是不可能完成的。不过,在PowerPoint中,利用VBA,还是可以使我们的这一要求得到满足的。
首先点击菜单命令“视图→工具栏→控件工具箱”,打开控件工具箱工具栏。点击工具栏中的“文本框”工具,在编辑窗口中拖放三个文本输入框。我们将利用此三个文本框分别接收幻灯片放映时输入的A、ω、φ的值,并利用这三个值画出函数y=Asin(ωx+φ)图象。
点击控件工具箱中的“命令按钮”工具,在编辑窗口中拖放一个按钮。选中它,点击右键,在弹出的快捷菜单中选择“属性”命令,打开“属性”对话框。如图4所示。将“Caption”右侧的内容改为“画图象”,并将“AutoSize”右侧的“False”改为“True”。其它的可以采用默认形式。点击“确定”按钮。

属性窗口
仍然选中“画图象”命令按钮,点击右键,在弹出的快捷菜单中选择“查看代码”命令,打开VBA代码编辑窗口。在窗口输入如下代码:
Private Sub CommandButton1_Click()
A = Val(TextBox1.Text) * 20
B = Val(TextBox2.Text)
C = Val(TextBox3.Text) * 3.14 * 20 / 180
SlideShowWindows(1).View.DrawLine 70, 200, 600, 200
SlideShowWindows(1).View.DrawLine 100, 60, 100, 400
Do While Count < 450
x1 = Count + 100
y1 = -A * Sin((B * Count + C) / 20) + 200
Count = Count + 1
x2 = Count + 100
y2 = -A * Sin((B * Count + C) / 20) + 200
SlideShowWindows(1).View.DrawLine x1, y1, x1, y2
Loop
End Sub
放映一下,输入三个变量值,点击“画图象”按钮,看看效果如何?如图5所示(最后一个文本框应输入φ的角度数)。

输入三个变量值
您可以多次输入数据,画出多个函数图象以方便观察。要清除这些图象,可以用上面的方法再做一个按钮,按钮上的文字设置为“清除图象”,编辑代码为:
Private Sub CommandButton3_Click()
SlideShowWindows(1).View.EraseDrawing
End Sub
想要一个坐标系?呵呵,如果您不怕麻烦,当然可以了。做第三个按钮,按钮文字为“画坐标系”,编辑代码为:
rivate Sub CommandButton3_Click()
h = 100
k = 200
Length = 15.7
Number = 500
Dim xx
xx = 1
Do While xx < Number
If xx Mod 4 = 0 Then
SlideShowWindows(1).View.DrawLine h + xx * Length, k - 7, h + xx * Length, k
SlideShowWindows(1).View.DrawLine h - xx * Length, k - 7, h - xx * Length, k
SlideShowWindows(1).View.DrawLine h, k - xx * (Length + 4.3), h + 7, k - xx * (Length + 4.3)
SlideShowWindows(1).View.DrawLine h, k + xx * (Length + 4.3), h + 7, k + xx * (Length + 4.3)
Else
SlideShowWindows(1).View.DrawLine h + xx * Length, k - 3, h + xx * Length, k
SlideShowWindows(1).View.DrawLine h - xx * Length, k - 3, h - xx * Length, k
SlideShowWindows(1).View.DrawLine h, k - xx * (Length + 4.3), h + 3, k - xx * (Length + 4.3)
SlideShowWindows(1).View.DrawLine h, k + xx * (Length + 4.3), h + 3, k + xx * (Length + 4.3)
End If
xx = xx + 1
Loop
SlideShowWindows(1).View.DrawLine h, k, h + xx * Length, k
SlideShowWindows(1).View.DrawLine h - xx * Length, k, h, k
SlideShowWindows(1).View.DrawLine h, k, h, k - xx * Length
SlideShowWindows(1).View.DrawLine h, k, h, k + xx * Length
End Sub
行了,再试一次。如图6所示。呵呵,够“专业”吧?用它来演示正弦波,不错吧?

演示正弦波
[上一页] [1] [2]