Движение электронов - VB

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

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

Здравстуйте,помогите с задачей!Есть неподвижное ядро атома и вокруг него вращаются три электрона в форме круга.Для атома нужна возможность выбора цвета,а для элетронов : радиус орбиты вращения(1-10),скорость(1-5), цвет, движение по часовой или против.Число оборотов для всех элетронов одинаковое. Также необходимо предусмотреть возможность установки параметров по умолчанию

Решение задачи: «Движение электронов»

textual
Листинг программы
  1. Dim Grad1 As Single, Grad2 As Single, Grad3 As Single
  2. Dim Spd1 As Single, Spd2 As Single, Spd3 As Single
  3. Dim R1 As Integer, R2 As Integer, R3 As Integer
  4. Dim clr1 As Long, clr2 As Long, clr3 As Long
  5. Dim NumberOfoborotov As Integer
  6. Dim oborot1 As Integer, oborot2 As Integer, oborot3 As Integer
  7. Const Pi As Single = 3.14159
  8.  
  9. Private Sub Color1_Change()
  10. If Val(Color1.Text) > 5 Or Val(Color1.Text) < 1 Then Color1.Text = "1"
  11. Color1.SelStart = 0: Color1.SelLength = 1
  12. End Sub
  13.  
  14. Private Sub Color1_GotFocus()
  15. Color1.SelStart = 0: Color1.SelLength = 1
  16. End Sub
  17.  
  18. Private Sub Color1_KeyUp(KeyCode As Integer, Shift As Integer)
  19. Color1.SelStart = 0: Color1.SelLength = 1
  20. End Sub
  21.  
  22. Private Sub Color1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  23. Color1.SelStart = 0: Color1.SelLength = 1
  24. End Sub
  25.  
  26. Private Sub Color2_Change()
  27. If Val(Color2.Text) > 5 Or Val(Color2.Text) < 1 Then Color2.Text = "1"
  28. Color2.SelStart = 0: Color2.SelLength = 1
  29. End Sub
  30.  
  31. Private Sub Color2_GotFocus()
  32. Color2.SelStart = 0: Color2.SelLength = 1
  33. End Sub
  34.  
  35. Private Sub Color2_KeyUp(KeyCode As Integer, Shift As Integer)
  36. Color2.SelStart = 0: Color2.SelLength = 1
  37. End Sub
  38.  
  39. Private Sub Color2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  40. Color2.SelStart = 0: Color2.SelLength = 1
  41. End Sub
  42.  
  43. Private Sub Color3_Change()
  44. If Val(Color3.Text) > 5 Or Val(Color3.Text) < 1 Then Color3.Text = "1"
  45. Color3.SelStart = 0: Color3.SelLength = 1
  46. End Sub
  47.  
  48. Private Sub Color3_GotFocus()
  49. Color3.SelStart = 0: Color3.SelLength = 1
  50. End Sub
  51.  
  52. Private Sub Color3_KeyUp(KeyCode As Integer, Shift As Integer)
  53. Color3.SelStart = 0: Color3.SelLength = 1
  54. End Sub
  55.  
  56. Private Sub Color3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  57. Color3.SelStart = 0: Color3.SelLength = 1
  58. End Sub
  59.  
  60. Private Sub Form_Load()
  61. Timer1.Interval = 10
  62. Me.Height = 7000: Me.Width = 10000
  63. Picture1.Scale (-10, 10)-(10, -10)
  64. Picture1.FillStyle = 0
  65. Picture1.AutoRedraw = True
  66. cmdStart.Caption = "Start":
  67.  
  68. Speed1.Text = 80:  Radius1.Text = 3: Color1.Text = 3
  69. Speed2.Text = 50: Radius2.Text = 4: Color2.Text = 4
  70. Speed3.Text = 55:  Radius3.Text = 6: Color3.Text = 5
  71.  
  72. Call cmdStart_Click
  73. End Sub
  74.  
  75. Private Sub Timer1_Timer()
  76. If oborot1 < NumberOfoborotov Then
  77.     If Grad1 + 1 <= 2 * Pi / Spd1 Then
  78.         Grad1 = Grad1 + 1
  79.     Else
  80.         Grad1 = 0
  81.         oborot1 = oborot1 + 1
  82.     End If
  83. End If
  84.  
  85. If oborot2 < NumberOfoborotov Then
  86.     If Grad2 + 1 <= 2 * Pi / Spd2 Then
  87.         Grad2 = Grad2 + 1
  88.     Else
  89.         Grad2 = 0
  90.         oborot2 = oborot2 + 1
  91.     End If
  92. End If
  93.  
  94. If oborot3 < NumberOfoborotov Then
  95.     If Grad3 - 1 >= -2 * Pi / Spd3 Then
  96.         Grad3 = Grad3 - 1
  97.     Else
  98.         Grad3 = 0
  99.         oborot3 = oborot3 + 1
  100.     End If
  101. End If
  102.  
  103. If oborot1 = NumberOfoborotov And oborot2 = NumberOfoborotov And oborot3 = NumberOfoborotov Then Timer1.Enabled = False
  104.  
  105. Picture1.Cls
  106. Picture1.FillColor = vbRed
  107. Picture1.Circle (0, 0), 0.5, vbRed
  108.  
  109. Picture1.FillColor = clr1
  110. Picture1.Circle ((Cos(Grad1 * Spd1) * Val(Radius1.Text)), Sin(Grad1 * Spd1) * Val(Radius1.Text)), 0.2, clr1
  111. Picture1.FillColor = clr2
  112. Picture1.Circle ((Cos(Grad2 * Spd2) * Val(Radius2.Text)), Sin(Grad2 * Spd2) * Val(Radius2.Text)), 0.3, clr2
  113. Picture1.FillColor = clr3
  114. Picture1.Circle ((Cos(Grad3 * Spd3) * Val(Radius3.Text)), Sin(Grad3 * Spd3) * Val(Radius3.Text)), 0.2, clr3
  115.  
  116. End Sub
  117. Private Sub cmdStart_Click()
  118. NumberOfoborotov = Val(oborot.Text)
  119. Grad1 = 0: Grad2 = 0: Grad3 = 0
  120. oborot1 = 0: oborot2 = 0: oborot3 = 0
  121. Spd1 = Val(Speed1.Text) / 1000
  122. Spd2 = Val(Speed2.Text) / 1000
  123. Spd3 = Val(Speed3.Text) / 1000
  124. clr1 = Choose(Val(Color1.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
  125. clr2 = Choose(Val(Color2.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
  126. clr3 = Choose(Val(Color3.Text), vbBlack, vbRed, vbGreen, vbBlue, vbMagenta)
  127. Timer1.Enabled = True
  128. End Sub
  129.  
  130. Private Sub cmdStop_Click()
  131. Timer1.Enabled = False
  132. End Sub

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


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

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

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

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

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

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