Millstone » 14.05.2004 (Пт) 11:09
Вот прямо у себя целиком скопировал. Просто посмотрите, пожалуйста, что получается. Щас попробую полилайн сделать...
Private Sub Command1_Click()
Const DeltaFi As Double = PI * 2 / 180
Dim Fi0 As Double, Fi As Double, rmax As Double, r As Double
Dim X As Double, Y As Double
Me.BackColor = &H80000009
Me.DrawWidth = 2
Me.Scale (-10000, 10000)-(10000, -10000)
Me.ForeColor = vbBlack
Me.Line (-10000, 0)-(10000, 0)
Me.Line (0, -10000)-(0, 10000)
Me.Line (0, 0)-(0, 0)
For Fi0 = 0.000013 To 2.1 * PI Step DeltaFi
rmax = 0
For Fi = 0.0000137 To 2 * PI Step 0.023
r = Count_graf(Fi, Fi0)
If r > rmax Then rmax = r
Next
Me.Line -(Cos(Fi0) * rmax, Sin(Fi0) * rmax)
Next
End Sub
Private Function Count_graf(Fi As Double, Fi0 As Double) As Double
Const Fi01 As Double = 0.00034
Const G As Double = 4000
Const E As Double = 300 * (10 ^ 3) * 60 * (10 ^ (-6))
Const sigma As Double = 7
Const rp As Double = 1000
Const Pp As Double = 150 / 1000000
Const Pm As Double = 1.38 * 10 ^ (-23) * 3 * 300000000000#
Dim psi As Double, psi1 As Double, F As Double, F1 As Double, r As Double, r1 As Double, r2 As Double, r3 As Double, xp As Double, yp As Double, eps As Double, v As Double, rm1 As Double, rm2 As Double
psi = 36 * 2.57 * (Cos(Fi - Fi0) - 1)
F = Sin(psi) / psi
psi1 = 36 * 2.57 * (Cos(Fi01 - Fi0) - 1)
F1 = Sin(psi1) / psi1
r = (E * G * sigma * (F ^ 4) / (16 * PI * PI * Pm + (4 * 3.14 * Pp * F1 ^ 2) / (rp ^ 2))) ^ (1 / 4)
Debug.Print r
Count_graf = r
End Function