Построение графиков по формулам - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте господа хорошие. Прошу помощи в осуществление моей идеи,а именно... Не знаю,как сделать,чтобы отображалось сразу несколько координат(формул) на осях.(Делать всё одной формулой очень сложно).+ как записать 2 последние формулы?(фиолетовые) Если не сложно,то помогите. +С описанием,где и что даёт,означает,ибо туплю маленько Вот предыдущий код,если что.
Заранее благодарен. Всегда ваш,Артём.

Решение задачи: «Построение графиков по формулам»

textual
Листинг программы
Option Explicit
 
Private Sub Form_Load()
    Dim old(6) As Single, x As Single, y As Single, d As Single, zx As Single, zy As Single, a As Single
    Width = 10500: Height = 7500: Scale (-7, 4)-(7, -4): AutoRedraw = True
    d = 0.001
    For x = -7 To 7 Step d
        If Abs(Fix(x) - x) < d Then
            DrawWidth = 1
            Me.Line (x, 4)-Step(0, -8), RGB(&H80, &H80, &H80)
            Me.Line (-7, x)-Step(14, 0), RGB(&H80, &H80, &H80)
            DrawWidth = 3
        End If
        If Abs(x) <= 4 Then
            y = F1(x): If old(0) <> 0 Then Me.Line (x - d, old(0))-(x, y)
            old(0) = y
        End If
        If Abs(x) <= 1 And Abs(x) > 0.75 Then
            y = F2(x): If old(1) <> 0 Then Me.Line (x - d, old(1))-(x, y), vbRed
            old(1) = y
        End If
        If Abs(x) <= 0.5 Then
            y = F3(x): If old(2) <> 0 Then Me.Line (x - d, old(2))-(x, y), vbBlue
            old(2) = y
        End If
        If Abs(x) <= 0.75 And Abs(x) > 0.5 Then
            y = F4(x): If old(3) <> 0 Then Me.Line (x - d, old(3))-(x, y), vbGreen
            old(3) = y
        End If
        If Abs(x) <= 3 And Abs(x) > 1 Then
            y = F5(x): If old(4) <> 0 Then Me.Line (x - d, old(4))-(x, y), vbYellow
            old(4) = y
        End If
    Next
    For a = 0.44291104407364 To 2.53334707467958 Step d
        x = dX(a): y = dY(a)
        If old(5) <> 0 Then Me.Line (old(5), old(6))-(x, y), vbMagenta: Me.Line (-old(5), old(6))-(-x, y), vbMagenta
        old(5) = x: old(6) = y
    Next
End Sub
 
Private Function F1(ByVal x As Double) As Double
    F1 = Abs(x / 2) - ((3 * Sqr(33) - 7) / 112) * x * x - 3 + Sqr(1 - (Abs(Abs(x) - 2) - 1) ^ 2)
End Function
Private Function F2(ByVal x As Double) As Double
    F2 = 9 * Sqr(Abs((Abs(x) - 1) * (Abs(x) - 0.75)) / ((1 - Abs(x)) * (Abs(x) - 0.75))) - 8 * Abs(x)
End Function
Private Function F3(ByVal x As Double) As Double
    F3 = 2.25 * Sqr(Abs((x - 0.5) * (x + 0.5)) / ((0.5 - x) * (0.5 + x)))
End Function
Private Function F4(ByVal x As Double) As Double
    F4 = 3 * Abs(x) + 0.75 * Sqr(Abs((Abs(x) - 0.75) * (Abs(x) - 0.5)) / ((0.75 - Abs(x)) * (Abs(x) - 0.5)))
End Function
Private Function F5(ByVal x As Double) As Double
    F5 = 6 * Sqr(10) / 7 + (1.5 - 0.5 * Abs(x)) * Sqr(Abs(Abs(x) - 1) / (Abs(x) - 1)) - 6 * Sqr(10) / 14 * Sqr(4 - (Abs(x) - 1) ^ 2)
End Function
Private Function dX(ByVal x As Double) As Double
    dX = 7 * Sin(x) * Sqr(Abs(Abs(7 * Sin(x)) - 3) / (Abs(7 * Sin(x)) - 3))
End Function
Private Function dY(ByVal x As Double) As Double
    dY = 3 * Cos(x) * Sqr(Abs(3 * Cos(x) + 3 * Sqr(33) / 7) / (3 * Cos(x) + 3 * Sqr(33) / 7))
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы