我用以下代码可以绘出y=sinx图形
但我对其中下列代码不太理解,为什么要Sin(a) * 5,乘以5是做什么?
如果我要绘出y=2sin(3x)+x 和y=2sin(3x)+cosx
语句应该写成Picture1.PSet (a, Sin(3 * a) * 5 + a), vbRed
和Picture1.PSet (a, 2 * Sin(3 * a) * 5 + Cos(a) * 5), vbRed
是否正确'用For循环绘点,使其按正弦规律变化。步长值很小,使其形成动画效果    For a = -2 * pi To 2 * pi Step pi / 6000    Picture1.PSet (a, Sin(a) * 5), vbRed    Next 绘出y=sinx的范例
通用声明模块:   Const pi = 3.14159   Dim a   Private Sub Command1_Click() '画正弦曲线   '首先清除picture1内的图形    Picture1.Cls    'Scale方法设定用户坐标系,坐标原点在Picture1中心    Picture1.ScaleMode = 0    Picture1.ScaleMode = 3    Picture1.Scale (-10, 10)- (10, -10)    '设置绘线宽度    Picture1.DrawWidth = 1    '绘坐标系的X轴及箭头线    Picture1.Line (-10, 0)-(10, 0), vbBlue    Picture1.Line (9, 0.5)-(10, 0), vbBlue    Picture1.Line -(9, -0.5), vbBlue    Picture1.ForeColor = vbBlue    Picture1.Print "X"    '绘坐标系的Y轴及箭头线    Picture1.Line (0, 10)-(0, -10), vbBlue    Picture1.Line (0.5, 9)-(0, 10), vbBlue    Picture1.Line -(-0.5, 9), vbBlue    Picture1.Print "Y"    '指定位置显示原点O    Picture1.CurrentX = 0.5    Picture1.CurrentY = -0.5    Picture1.Print "O"    '重设绘线宽度    Picture1.DrawWidth = 2    '用For循环绘点,使其按正弦规律变化。步长值很小,使其形成动画效果    For a = -2 * pi To 2 * pi Step pi / 6000    Picture1.PSet (a, Sin(a) * 5), vbRed    Next    '指定位置显示描述文字    Picture1.CurrentX = pi / 2    Picture1.CurrentY = -7    Picture1.ForeColor = vbBlack    Picture1.Print "正弦曲线示意"   End Sub 

解决方案 »

  1.   

    哦~ 刚仔细看了下, 作者指定了图片的宽度和高度都是10,但是作者的图片不是正方型的
    而是长宽比是5:1的长方形,为了照成平衡的视觉效果,故意将Y拉长了
        实际是5(程序认为他是10)
    |----------------------------|
    |                            |  实际1(程序认为他是10)
    |                            | 
    |----------------------------|
    你想下,如果宽度绘制了1个长度,实际上 5/10 = x/1 x=5/10 个长度
           如果高度绘制了1个长度  实际上 1/10 = y/1 y=1/10 个长度
    为了制造宽度绘制了一个长度和高度绘制了一个长度实际效果看起来一样的情况,
    作者  y = y*5 = 1/10 * 5 = x 
      

  2.   

    如果我要绘出y=2sin(3x)+x 和y=2sin(3x)+cosx
    用上面范例
    Picture1.PSet 应该怎么写,用乘以5吗?
      

  3.   

    申明:该范例成立的条件是作者的picture的外观是5:1的长宽比
    所以需要将y放大5倍 
    比如函数  y = f(x)
    则 picture1.pset (x, 5 * f(x)), vbred
    如果你绘制的图片是1:5的长宽比
    则 picture1.pset (x, f(x)/5), vbred