F
flayve
Здравствуйте, уважаемые друзья! Прошу Вас, помогите пожалуйста в решении проблемы: программа вычисляет значение перемещения (sum1, то есть точка пересечения с осью OX, соответственно sum1/2 - значение х для вершины) и максимальное значение высоты (height1 - значение у вершины), которые вычисляются следующим программным кодом:
Это математическая часть программы, которая работает. Но мне необходимо, чтобы используя вычисленные значения, программа построила график - параболу с ветвями, направленными вниз, в PictureBox (имя объекта - work). Соответственно с каждым изменением каждого параметра должен строится новый график, с учётом того, что предыдущие вычисление и построения удаляются нажатием кнопки "Сброс":
Я нашёл программы построения простой параболы:
Проблема в том, что у меня не получается связать математическую часть с графиком параболы. Нужно, чтобы парабола строилась по вычисленным значениям (как было сказано выше) по нажатию кнопки "Пуск!" и обнулял все значения нажатием на кнопку. Также был бы благодарен, если будут оставаться статичными ось ОХ и ось ОY. Прошу Вас, помогите пожалуйста! (На всякий случай прикрепляю скрин-шот программы
)
Код:
Dim speed1 As Integer
Dim degree1 As Integer
Dim time1 As Integer
Dim length1 As Currency
Dim height1 As Currency
Dim X1 As Currency
Dim Y1 As Currency
Dim sum1 As Currency
Private Sub start_Click() <кнопка "Пуск!">
time = Val(time.Text)
Y1 = Val(speed.Text) * Sin(Val(degree.Text)): height1 = Y1 ^ 2 / 20
If height1 >= 0 Then height1 = height1: hei.Text = height1 Else: height1 = (-1) * height1: hei.Text = height1
X1 = Val(speed.Text) * Cos(Val(degree.Text)): sum1 = X1 * time
If sum1 >= 0 Then sum1 = sum1: sum.Text = sum1 Else: sum1 = (-1) * sum1: sum.Text = sum1
End Sub
Код:
Private Sub clean_Click()
speed.Text = ""
time.Text = ""
degree.Text = ""
sum.Text = ""
hei.Text = ""
work.Cls
End Sub
Код:
Dim a, b, c
Private Sub Form_Paint()
Dim X As Long
Dim Y As Long
a = 0.05
Cls
ScaleMode = vbPixels
For X = 0 To ScaleWidth
Y = f(X - ScaleWidth / 2)
Y = ScaleHeight - Y
Line -(X, Y)
Next X
End Sub
Function f(X As Long) As Long
f = a * X ^ 2 + b * X + c
End Function
Private Sub Form_Resize()
Refresh
End Sub