直线拟合的动态坐标轴怎么做?

来源:百度知道 编辑:UC知道 时间:2024/07/08 04:19:40
我在做一个vb的直线拟合程序,要设计一个自定义坐标系统,上面的刻度怎么分啊?怎么让刻度随着坐标的长短变化呢?请高手指点一下,不胜感激!!!

Public Function CaLineParam(ByRef XY_X() As Double, ByRef XY_Y() As Double, ByRef LineK As Double, ByRef LineB As Double) As String
On Error GoTo Err_Exit:
'直线拟合
'"[Y]=" & LineK & "*[X]+" & LineB
Dim I As Integer, J As Integer, K As Integer
Dim Sx As Double, Sxx As Double, Sy As Double, Sxy As Double
Sx = 0: Sxx = 0: Sy = 0: Sxy = 0

J = Max(LBound(XY_X), LBound(XY_Y))
K = Min(UBound(XY_X), UBound(XY_Y))
For I = J To K
Sx = Sx + XY_X(I)
Sxx = Sxx + XY_X(I) ^ 2
Sy = Sy + XY_Y(I)
Sxy = Sxy + XY_X(I) * XY_Y(I)
Next

I = K - J + 1
LineK = (Sx * Sy - I * Sxy) / (Sx ^ 2 - I * Sxx)
LineB = (Sy - Sx * LineK) / I

If LineB < 0 Then
CaLineParam = "[Y]=" & LineK & "*[X]" & LineB
ElseIf LineB = 0 Then
CaLineParam = "[Y]=" & LineK & "*[X]"
Else
CaLineParam = "[Y]="