对数坐标是怎么回事,他的原理,以及如何绘制,具体要求,纵轴常规坐标(均匀),横轴采用对数坐标,用(X,Y)2040个点绘制连续曲线,仿效绘图软件orange

解决方案 »

  1.   

    Dim xStart As Double, yStart As Double
    Dim x As Double
    Dim stopp As Boolean
    Private Sub Form_click()
    stopp = Not stopp
    x = 0
    Picture1.ScaleMode = 3
    Picture1.Line (0, 100)-(Picture1.Width, 100)
    Picture1.Line (0, 0)-(0, Picture1.Height)
    End SubPrivate Sub Form_Load()
    x = 0
    stopp = False
    Picture1.ScaleMode = 3
    xStart = 0: yStart = 100
    End SubPrivate Sub Picture1_Paint()
    For x = 1 To Picture1.ScaleWidth Step 0.01
    If stopp Then Exit Sub
    DoEvents
     Picture1.PSet (CDbl(xStart + Log(x)), CDbl(yStart - 100 * Sin(2000 * 3.14159 * x))), vbRed
    Next x
    End Sub
      

  2.   

    Picture1.PSet (CDbl(xStart + 20 * Log(x)), CDbl(yStart - 100 * Sin(2000 * 3.14159 * x))), vbRed
    用这条更明显
      

  3.   

    也就是说,y仍用x计算,x'=log(x),不是这样吗?
    程序你自己编吧.
      

  4.   

    'CTRL+T  ==>Microsoft  ScriptControl
     
     
    Option Explicit
     
    Public Y   As Double
    Public X   As Double
     
    '引用
     
    Private Sub Command1_Click()
                   Dim MathStr   As String
                   Dim TmpStr   As String
     
                   On Error Resume Next
     
                   MathStr = "LOG(X)"    '定义一个数学函数,可以能过TEXTBOX输入,但是只能有一个变量X.还要注意调整下面FOR循环中的范围.例如:1/X.要保证X>0.
                     
                   For X = 0 To 200 Step 0.1
                           TmpStr = Replace(UCase$(MathStr), "X", X)      '替换掉原公式中的值
                           Y = ScriptControl1.Eval(TmpStr)            '根据表达式计算值.
                           '坐标原点是500,500
                           Picture1.CurrentX = X * 30
                           Picture1.CurrentY = 2000 + -Y * 30        '注意,电脑的Y坐标与数学坐标是相反的.
                           Picture1.Print "."
                   Next
    End Sub