Построение на экране известных математических кривых, заданных уравнениями - VB
Формулировка задачи:
Составить программы построения на экране известных математических кривых, заданных уравнениями в параметрическом виде (a>0)
Решение задачи: «Построение на экране известных математических кривых, заданных уравнениями»
textual
Листинг программы
Option Explicit
Const PI As Double = 3.14152, Sk As Integer = 10
Dim X As Double, Y As Double, r As Double, f As Double, t As Double
Dim a As Single, i As Single, P As PictureBox, L As Double
Private Sub Command1_Click()
Call Scal
Call Graf
Call Coord
End Sub
Private Sub Graf_1()
For t = -Sk To Sk Step 0.001
X = (a * (t ^ 2 - 1)) / (t ^ 2 + 1)
Y = (a * t * (t ^ 2 - 1)) / (t ^ 2 + 1)
P.Circle (X, Y), 0.03, RGB(255, 0, 0)
Next t
End Sub
Private Sub Graf_2()
For t = -Sk To Sk Step 0.001
X = a * (t - Sin(t))
Y = a * (1 - Cos(t))
P.Circle (X, Y), 0.03, RGB(255, 0, 0)
Next t
End Sub
Private Sub Graf_3()
L = CSng(Replace(Text3.Text, ".", ","))
For t = -Sk To Sk Step 0.001
X = a * (t - L * Sin(t))
Y = 1 - L * Cos(t)
P.Circle (X, Y), 0.03, RGB(255, 0, 0)
Next t
End Sub
Private Sub Graf_4()
For X = -Sk To Sk Step 0.001
Y = a ^ 3 / (X ^ 2 + a ^ 2)
P.Circle (X, Y), 0.03, RGB(255, 0, 0)
Next X
End Sub
Private Sub Graf()
Select Case True
Case Option1(0).Value: Call Graf_1
Case Option1(1).Value: Call Graf_2
Case Option1(2).Value: Call Graf_3
Case Option1(3).Value: Call Graf_4
End Select
End Sub
Private Sub Scal()
Set P = Picture1
P.Cls
'a = InputBox(" Введите a = ", "Ввод данных", 2.2)
a = CSng(Replace(Text1.Text, ".", ","))
P.DrawStyle = 0: P.AutoRedraw = True
P.Scale (-Sk, Sk)-(Sk, -Sk)
P.Line (-Sk, 0)-(Sk, 0), RGB(0, 0, 255) 'ocb X
P.Line (0, -Sk)-(0, Sk), RGB(0, 0, 255) 'ocb Y
End Sub
Private Sub Coord()
'Kоординатная сетка
P.DrawStyle = 2 ' Пунктирная линия
For i = -Sk To Sk 'Step 0.5
P.CurrentX = 0 ' оцифровка
P.CurrentY = i
P.Print Format$(i, "0.0")
P.Line (-0.05, i)-(0.05, i) ' засечка
P.Line (-Sk, i)-(Sk, i)
Next i
For i = -Sk To Sk 'Step 0.5
P.CurrentX = i ' оцифровка
P.CurrentY = 0
P.Print Format$(i, "0.0")
P.Line (i, -0.05)-(i, 0.05) ' засечка
P.Line (i, -Sk)-(i, Sk)
Next i
P.DrawStyle = 2 ' Пунктирная линия
End Sub
Private Sub Command2_Click()
End
End Sub