Построение графиков по формулам - VB
Формулировка задачи:
Здравствуйте господа хорошие.
Прошу помощи в осуществление моей идеи,а именно...
Не знаю,как сделать,чтобы отображалось сразу несколько координат(формул) на осях.(Делать всё одной формулой очень сложно).+ как записать 2 последние формулы?(фиолетовые)
Если не сложно,то помогите.
+С описанием,где и что даёт,означает,ибо туплю маленько
Вот предыдущий код,если что.
Заранее благодарен.
Всегда ваш,Артём.
Листинг программы
- Private Sub Command1_Click()
- Dim SngX As Single, i As Integer, y As Double
- Dim XMin As Double, XMax As Double, YMin As Double, YMax As Double
- PicGraph.Cls
- 'Г‡Г*Г¤Г*Г*ГЁГҐ Г¬Г*Г±ГёГІГ*ГЎГ* ГЁ Г*îâîé ñèñòåìû êîîðäèГ*Г*ГІ
- XMin = Val(Text1.Text)
- XMax = Val(Text2.Text)
- YMin = Val(Text3.Text)
- YMax = Val(Text4.Text)
- If (XMin = XMax) Or (YMin = YMax) Then
- MsgBox "ГЌГҐГўГҐГ°Г*ûå êîîðäèГ*Г*ГІГ»"
- Exit Sub
- End If
- PicGraph.Scale (XMin, YMax)-(XMax, YMin)
- 'ÏîñòðîåГ*ГЁГҐ ГЈГ°Г*ГґГЁГЄГ* ГґГіГ*êöèè
- For SngX = XMin To XMax Step 0.01
- y = (7 * Sin(SngX))
- PicGraph.PSet (SngX, y), vbRed
- Next SngX
- 'Ðèñóåì îñü Õ
- PicGraph.Line (XMin, 0)-(XMax, 0)
- For i = XMin To XMax
- PicGraph.PSet (i, 0)
- PicGraph.Print i
- Next i
- 'Ðèñóåì îñü Y
- PicGraph.Line (0, YMax)-(0, YMin)
- For i = YMin To YMax
- PicGraph.PSet (0, i)
- PicGraph.Print i
- Next i
- End Sub
Решение задачи: «Построение графиков по формулам»
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д