都市

自己动手做一个数学函数作图器覆盖

自己动手做一个数学函数作图器

学习中我们经常会遇到一些要求作图的题目,数学就是一个很好的例子,君不见,哪一个学生不是整天拿着一根尺子几只笔在画啊画的?要是能有一个作图的软件该有多好啊!虽然拿来主义是我们一向的作风,可是只顾拿来而从不动一下脑筋又有点儿说不过去,所以,今天的课题就是——用VB做一个数学函数作图器!

我们先来了解一下VB的坐标系统,VB的坐标系统可分为“窗体的坐标系统”和“对象的坐标系统”两种,但是这两种坐标系统均是以屏幕的左上角为原点(0,0),这和我们平时所选取的以中心为原点显然很不相符,而且使用起来也很不方便。所以,我们要用VB提供的Scale来自定义坐标系,格式如: ale(-10,10)-(10,-10),意思就是把整个Picture1控件定义为一个20×20的区域用于绘图,以Picture1的中心为原点(0,0)。

有了上面的基础,我们就可以用Pset(画点)、Line(画线)等,轻轻松松地来画函数的图像了。

启动VB,建立一标准EXE工程,再在窗口上如图所示地布置5个Command Button控件和1个PictureBox控件,输入以下的代码就OK了。

Const Pi = 3. \'\'定义圆周率

Dim a, wor

\'\'定义用于在Picture1上的一个位置打印字符函数

Private Function PrintWord(X, Y, Word As String)

With Picture1

.CurrentX = X

.CurrentY = Y

.ForeColor = RGB(0, 0, 255)

End With

int Word

End Function

\'\'定义画点函数

Private Function DrawDot(Px, Py, Color)

et (Px, Py), Color

End Function

Sub XY() \'\'建立直角坐标系

awWidth = 1 \'\'设置线条宽度

s

\'\'设定用户坐标系,坐标原点在Picture1中心

ale (-10, 10)-(10, -10)

ne (-10, 0)-(10, 0), RGB(0, 0, 255)

ne -(9.5, 0.5), RGB(0, 0, 255)

ne (10, 0)-(9.5, -0.5), RGB(0, 0, 255)

reColor = RGB(0, 0, 255)

int \"X\"

\'\'画 X 轴

ne (0, -10)-(0, 10), RGB(0, 0, 255)

ne -(0.5, 9.5), RGB(0, 0, 255)

ne (0, 10)-(-0.5, 9.5), RGB(0, 0, 255)

int \"Y\"

\'\'画 Y 轴

For lin = -9 To 9

ne (lin, 0)-(lin, 0.25)

wor = PrintWord(lin - 0.5, -0.5, Str(lin))

ne (0, lin)-(-0.25, lin)

If lin 0 Then

wor = PrintWord(-0.9, lin, Str(lin))

End If

Next lin

awWidth = 2

nd Sub

Private Sub Command1_Click() \'\'画正弦曲线

\'\'用For循环绘点,使其按正弦规律变化。

\'\'步长小,使曲线比较平滑,还能形成动画效果

For a = -2 * Pi To 2 * Pi Step Pi / 6000

Dot = DrawDot(a, Sin(a) * 5, RGB(0, 255, 0))

Next a

wor = PrintWord(3, -6, \"正弦曲线 y=Sinx\")

End Sub

Private Sub Command2_Click()

For a = -2 * Pi To 2 * Pi Step Pi / 6000

Dot = DrawDot(a, Cos(a) * 5, RGB(255, 0, 0))

Next a

wor = PrintWord(4, 6, \"余弦曲线 y=Cosx\")

End Sub

Private Sub Command3_Click()

For a = -3 To 3 Step Pi / 6000

Dot = DrawDot(a, a ^ 2, RGB(0, 0, 0))

Next a

wor = PrintWord(4, 9, \"二次曲线 y=x^2\")

End Sub

Private Sub Command4_Click()

For a = -8 To 8 Step Pi / 6000

If a = 0 Then GoTo err0 \'\'除数不能为0

Dot = DrawDot(a, 1 / a, RGB(255, 0, 255))

err0:

Next a

wor = PrintWord(6, 2, \"双曲线 y=1/x\")

End Sub

范永胜立 Private Sub Command5_Click() \'\'清空屏幕

XY

End Sub

Private Sub Form_Load()

ption = \"数学函数作图?quot;

ow

toRedraw = True

ckColor = vbWhite

ption = \"正弦曲线\"

ption = \"余弦曲线\"

ption = \"二次曲线\"

ption = \"双曲线\"

ption = \"清空\"

XY

End Sub

Private Sub Form_Resize()

dth = dth * 0.94

End Sub

怎么样,是不是很容易就把函数图像画出来了?比起“取点、描点、画图像”的步骤简单多了,而且还是动画效果的呢!

程序在Windows98/XP+VB6.0下编译通过。

天津白癜风诊疗医院
郑州治白癜风去哪里
干眼症如何治疗
友情链接