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

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

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

Здравствуйте господа хорошие. Прошу помощи в осуществление моей идеи,а именно... Не знаю,как сделать,чтобы отображалось сразу несколько координат(формул) на осях.(Делать всё одной формулой очень сложно).+ как записать 2 последние формулы?(фиолетовые) Если не сложно,то помогите. +С описанием,где и что даёт,означает,ибо туплю маленько Вот предыдущий код,если что.
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim SngX As Single, i As Integer, y As Double
  3. Dim XMin As Double, XMax As Double, YMin As Double, YMax As Double
  4. PicGraph.Cls
  5. 'Г‡Г*Г¤Г*Г*ГЁГҐ Г¬Г*Г±ГёГІГ*ГЎГ* ГЁ Г*îâîé ñèñòåìû êîîðäèГ*Г*ГІ
  6. XMin = Val(Text1.Text)
  7. XMax = Val(Text2.Text)
  8. YMin = Val(Text3.Text)
  9. YMax = Val(Text4.Text)
  10. If (XMin = XMax) Or (YMin = YMax) Then
  11. MsgBox "ГЌГҐГўГҐГ°Г*ûå êîîðäèГ*Г*ГІГ»"
  12. Exit Sub
  13. End If
  14. PicGraph.Scale (XMin, YMax)-(XMax, YMin)
  15. 'ÏîñòðîåГ*ГЁГҐ ГЈГ°Г*ГґГЁГЄГ* ГґГіГ*êöèè
  16. For SngX = XMin To XMax Step 0.01
  17. y = (7 * Sin(SngX))
  18. PicGraph.PSet (SngX, y), vbRed
  19. Next SngX
  20. 'Ðèñóåì îñü Õ
  21. PicGraph.Line (XMin, 0)-(XMax, 0)
  22. For i = XMin To XMax
  23. PicGraph.PSet (i, 0)
  24. PicGraph.Print i
  25. Next i
  26. 'Ðèñóåì îñü Y
  27. PicGraph.Line (0, YMax)-(0, YMin)
  28. For i = YMin To YMax
  29. PicGraph.PSet (0, i)
  30. PicGraph.Print i
  31. Next i
  32. End Sub
Заранее благодарен. Всегда ваш,Артём.

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

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.     Dim old(6) As Single, x As Single, y As Single, d As Single, zx As Single, zy As Single, a As Single
  5.     Width = 10500: Height = 7500: Scale (-7, 4)-(7, -4): AutoRedraw = True
  6.     d = 0.001
  7.     For x = -7 To 7 Step d
  8.         If Abs(Fix(x) - x) < d Then
  9.             DrawWidth = 1
  10.             Me.Line (x, 4)-Step(0, -8), RGB(&H80, &H80, &H80)
  11.             Me.Line (-7, x)-Step(14, 0), RGB(&H80, &H80, &H80)
  12.             DrawWidth = 3
  13.         End If
  14.         If Abs(x) <= 4 Then
  15.             y = F1(x): If old(0) <> 0 Then Me.Line (x - d, old(0))-(x, y)
  16.             old(0) = y
  17.         End If
  18.         If Abs(x) <= 1 And Abs(x) > 0.75 Then
  19.             y = F2(x): If old(1) <> 0 Then Me.Line (x - d, old(1))-(x, y), vbRed
  20.             old(1) = y
  21.         End If
  22.         If Abs(x) <= 0.5 Then
  23.             y = F3(x): If old(2) <> 0 Then Me.Line (x - d, old(2))-(x, y), vbBlue
  24.             old(2) = y
  25.         End If
  26.         If Abs(x) <= 0.75 And Abs(x) > 0.5 Then
  27.             y = F4(x): If old(3) <> 0 Then Me.Line (x - d, old(3))-(x, y), vbGreen
  28.             old(3) = y
  29.         End If
  30.         If Abs(x) <= 3 And Abs(x) > 1 Then
  31.             y = F5(x): If old(4) <> 0 Then Me.Line (x - d, old(4))-(x, y), vbYellow
  32.             old(4) = y
  33.         End If
  34.     Next
  35.     For a = 0.44291104407364 To 2.53334707467958 Step d
  36.         x = dX(a): y = dY(a)
  37.         If old(5) <> 0 Then Me.Line (old(5), old(6))-(x, y), vbMagenta: Me.Line (-old(5), old(6))-(-x, y), vbMagenta
  38.         old(5) = x: old(6) = y
  39.     Next
  40. End Sub
  41.  
  42. Private Function F1(ByVal x As Double) As Double
  43.     F1 = Abs(x / 2) - ((3 * Sqr(33) - 7) / 112) * x * x - 3 + Sqr(1 - (Abs(Abs(x) - 2) - 1) ^ 2)
  44. End Function
  45. Private Function F2(ByVal x As Double) As Double
  46.     F2 = 9 * Sqr(Abs((Abs(x) - 1) * (Abs(x) - 0.75)) / ((1 - Abs(x)) * (Abs(x) - 0.75))) - 8 * Abs(x)
  47. End Function
  48. Private Function F3(ByVal x As Double) As Double
  49.     F3 = 2.25 * Sqr(Abs((x - 0.5) * (x + 0.5)) / ((0.5 - x) * (0.5 + x)))
  50. End Function
  51. Private Function F4(ByVal x As Double) As Double
  52.     F4 = 3 * Abs(x) + 0.75 * Sqr(Abs((Abs(x) - 0.75) * (Abs(x) - 0.5)) / ((0.75 - Abs(x)) * (Abs(x) - 0.5)))
  53. End Function
  54. Private Function F5(ByVal x As Double) As Double
  55.     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)
  56. End Function
  57. Private Function dX(ByVal x As Double) As Double
  58.     dX = 7 * Sin(x) * Sqr(Abs(Abs(7 * Sin(x)) - 3) / (Abs(7 * Sin(x)) - 3))
  59. End Function
  60. Private Function dY(ByVal x As Double) As Double
  61.     dY = 3 * Cos(x) * Sqr(Abs(3 * Cos(x) + 3 * Sqr(33) / 7) / (3 * Cos(x) + 3 * Sqr(33) / 7))
  62. End Function

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


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

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы