Ajuste de mínimos cuadrados lineal VB
Subcomando privado 1_Click()
Si Text1. Text = " "Luego salga de la suscripción
Dim x() es único, y() es único, cnt es entero
Dim xmax es único, xmin es único, ymax es único , ymin es único
Dim p() es una cadena, z() es una cadena
Dim xyh es único, xh es único, yh es único, xph es único, k es único, b es único
p = Split(Text1. Text, "/")
Para i = 0 al límite inferior (p)
Si p( I)<>""Entonces
z = Split(p(i), "*")
Si UBound(z) = 1, entonces
Si IsNumeric(z(0)) y IsNumeric(z(1)) entonces
Si cnt = 0, entonces xmax = z(0):xmin = z(0):ymax = z (1):ymin = z(1)
Si xmax & ltz(0) entonces xmax = z(0)
Si xmin & gtz(0) entonces xmin = z( 0)
Si ymax & ltz(1) entonces ymax = z(1)
Si ymin & gtz(1) entonces ymin = z(1)
xyh = xyh+z(0)* z(1):xh = xh+z(0):yh = yh+z(1):xph = xph+z(0)^ 2
ReDim retiene x(cuenta), y(cuenta)
x(CNT)= z(0):y(CNT)= z(1):CNT = CNT+1
Terminará si...
Terminará si...
Terminará si...
Entonces
Imagen 1. Cls
Imagen 1. DrawWidth = 1
Si xmax = xmin y ymax = ymin, entonces
MsgBox "No se puede instalar un solo punto"
Entonces ElseIf xmax = xmin
Imagen 1. Escala (xmin * 0,5, ymax+0,2 * (ymax-ymin))-(xmin * 1,5, ymin - 0,2 * (ymax - ymin))
Semana con guión izquierdo xmin * 0,5, ymax + 0,2 * (ymax - ymin), xmin * 1,5, ymin - 0,2 * (ymax - ymin)
Imagen 1. Línea (xmax, ymax + 0.2 * (ymax - ymin))-(xmax, ymin - 0.2 * (ymax - ymin)), vbBlue
Entonces si no ymax = ymin
Imagen 1. Número de decimales (xmin - 0,2 * (xmax - xmin), ymax * 1,5)-(xmax+0,2 * (xmax-xmin), ymin * 0,5)
Semana con guión izquierdo xmin - 0,2 * (xmax - xmin), ymax * 1,5, xmax + 0,2 * (xmax - xmin), ymin * 0,5
Imagen 1.
Línea (xmin - 0.2 * (xmax - xmin), ymax)-(xmax + 0.2 * (xmax - xmin), ymax), vbBlue
Otros
Imagen 1. Escala (xmin - 0,2 * (xmax - xmin), ymax+0,2 *(ymax-ymin))-(xmax+0,2 *(xmax-xmin), ymin - 0,2 * (ymax - ymin))
Subíndice izquierdo xmin - 0,2 * (xmax - xmin), ymax + 0,2 * (ymax - ymin), xmax + 0,2 * (xmax - xmin), ymin - 0,2 * (ymax - ymin)
k =(xyh-(xh * yh)/CNT)/(xph-xh ^ 2/CNT)
b = yh / cnt - k * xh / cnt
Imagen 1 . Línea (xmin - 0,2 * (xmax - xmin), k * (xmin - 0,2 * (xmax - xmin)) + b) - (xmax + 0,2 * (xmax - xmin), k * (xmax + 0,2 * (xmax - xmin)) + b), vbBlue
Terminará si...
Imagen 1. Ancho de trazado = 5
Para i = 0 a cnt - 1
Imagen 1. PSet (x(i), y(i)), vbRed
Entonces
Text1. SetFocus
Conector final
Subform privado_Activate()
Texto1. SetFocus
Conector final
Subform_Load privado()
Texto1. texto = " "
Texto1. ToolTipText = "Las coordenadas horizontales y verticales están separadas por un símbolo de multiplicación *, y los puntos están separados por un símbolo de división /. Por ejemplo: 100*100/200*200 "
Comando 1. Caption="Dibujo"
Imagen 1. AutoRedraw = True
Conector final
Subtexto privado 1 _ KeyPress(KeyAscii es un número entero)
Si no (IsNumeric(Chr(KeyAscii)) o KeyAscii = 8 o KeyAscii = 42 o KeyAscii = 45 o KeyAscii = 46 o KeyAscii = 47), luego KeyAscii = 0
Conector final
Ciclo de coordenadas de función (ByVal x1 es único, y1 es simple, x2 es simple, y2 es simple)
Para i = x1 + (x2 - x1) / 5 a x2 pasos (x2 - x1) / 5
Imagen 1. Línea (i, y2+100 *(y 1-y2)/imagen 1. altura)-(i, y2)
Imagen 1. ActualX = I-250 *(x2-x 1)/imagen 1. Ancho
Imagen 1. ActualY = y2+350 *(y 1-y2)/imagen 1. Altura
Foto 1. Imprime I
Entonces
Para i = y2 + (y1 - y2) / 5 pasos para y1 (y1 - y2) / 5
Imagen 1. Línea (x1, I)-(x 1+100 *(x2-x 1)/imagen 1. Ancho, I)
Imagen 1.
ActualX = x 1+150 *(x2-x 1)/imagen 1. Ancho
Imagen 1. ActualY = I+80 *(y 1-y2)/imagen 1. Altura
Foto 1. Imprimir I
Luego
Finalizar función