19/05/09 18:32
Angelelvis
a ok te lo passo subito
ecccolo
ecccolo
Private Function angolo360(ByVal x As Single, ByVal y As Single, ByVal OrigX As Single, ByVal OrigY As Single) As Single Dim Xadesso, Yadesso, Angoloadesso As Single Dim Xsp, Ysp As Long If x >= OrigX Then Xsp = 1 Xadesso = x - OrigX Else Xsp = 0 Xadesso = OrigX - x End If If y >= OrigY Then Ysp = 1 Yadesso = y - OrigY Else Ysp = 0 Yadesso = OrigY - y End If Angoloadesso = (Xadesso * 90) / (Xadesso + Yadesso) Select Case Xsp & Ysp Case "00" Angoloadesso = 270 + (90 - Angoloadesso) Case "01" Angoloadesso = 180 + Angoloadesso Case "10" Angoloadesso = Angoloadesso Case "11" Angoloadesso = 90 + (90 - Angoloadesso) End Select angolo360 = Angoloadesso End Function Private Function Radianti(ByVal angolo As Single) As Single Radianti = (angolo * 6.28) / 360 End Function Private Function f(ByVal angolo1 As Single, ByVal angolo2 As Single, ByVal massa As Single, ByVal lunghezza As Single, ByVal mu As Single, ByVal dt As Single, ByVal gravita As Single) f = ((angolo2 - angolo1) ^ 2 / dt ^ 2) - (mu / massa) * ((angolo2 - angolo1) / dt) - (gravita / lunghezza) * angolo1 End Function Private Sub Lunghezzapendolo_Change() raggio = Lunghezzapendolo.Value Text5.Text = raggio x = Val(Text2.Text) y = Val(Text3.Text) angolo = angolo360(x, y, x0, y0) Picture1.Cls x = Sin(Radianti(angolo)) * raggio y = Cos(Radianti(angolo)) * raggio x = x0 + x If y < 0 Then y = -y Else y = -y End If y = y0 + y Picture1.Circle (x, y), m Picture1.Line (x, y)-(x0, y0) If angolo >= 270 And angolo <= 360 Then angolo = angolo - 360 End If Text1.Text = angolo Text2.Text = Math.Round(x) Text3.Text = Math.Round(y) End Sub Private Sub Massapendolo_Change() massa = Massapendolo.Value Text4.Text = massa x = Val(Text2.Text) y = Val(Text3.Text) angolo = angolo360(x, y, x0, y0) Picture1.Cls x = Sin(Radianti(angolo)) * raggio y = Cos(Radianti(angolo)) * raggio x = x0 + x If y < 0 Then y = -y Else y = -y End If y = y0 + y Picture1.Circle (x, y), massa Picture1.Line (x, y)-(x0, y0) If angolo >= 270 And angolo <= 360 Then angolo = angolo - 360 End If Text1.Text = angolo Text2.Text = Math.Round(x) Text3.Text = Math.Round(y) End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If scelta = 0 Then angolo = angolo360(x, y, x0, y0) Picture1.Cls x = Sin(Radianti(angolo)) * raggio y = Cos(Radianti(angolo)) * raggio x = x0 + x If y < 0 Then y = -y Else y = -y End If y = y0 + y Picture1.Circle (x, y), massa Picture1.Line (x, y)-(x0, y0) If angolo >= 270 And angolo <= 360 Then angolo = angolo - 360 End If Text1.Text = angolo Text2.Text = Math.Round(x) Text3.Text = Math.Round(y) End If End Sub Private Function angolo3602(ByVal x As Single, ByVal y As Single, ByVal sp As Single, ByVal x0 As Single, ByVal y0 As Single) x = x + sp y = y + sp angolo3602 = angolo360(x, y, x0, y0) End Function Private Sub movependolosx() y3 = yp For i = xp To xf Step stepp x2 = i If x2 < appo Then If x2 < 0 Then y3 = y3 + stepp End If If x2 > 0 Then y3 = y3 - stepp End If If x2 = 0 Then y3 = 50 End If appo = x2 End If If x2 > appo Then If x2 < 0 Then y3 = y3 - stepp End If If x2 > 0 Then y3 = y3 + stepp End If If x2 = 0 Then y3 = 50 End If appo = x2 End If angolo1 = angolo360(x2, y3, x0, y0) angolo2 = angolo3602(x2, y3, stepp, x0, y0) Form2.List1.AddItem (f(angolo1, angolo2, massa, raggio, mu, dt, gravita) & " " & angolo1) Picture1.Refresh x2 = Sin(Radianti(angolo1)) * raggio y2 = Cos(Radianti(angolo1)) * raggio x2 = x0 + x2 If y < 0 Then y2 = -y2 Else y2 = -y2 End If y2 = y0 + y2 Picture1.Circle (x2, y2), massa Picture1.Line (x2, y2)-(x0, y0) If angolo1 >= 270 And angolo1 <= 360 Then angolo1 = angolo1 - 360 End If Text1.Text = angolo1 Text2.Text = Math.Round(x2) Text3.Text = Math.Round(y2) Next i If xf < 0 Then xf = xf + dt Else xf = xf - dt End If End Sub Private Sub movependolodx() y3 = yf For i = xp To xf Step stepp x2 = i If x2 < appo Then If x2 < 0 Then y3 = y3 + stepp End If If x2 > 0 Then y3 = y3 - stepp End If If x2 = 0 Then y3 = 50 End If appo = x2 End If If x2 > appo Then If x2 < 0 Then y3 = y3 - stepp End If If x2 > 0 Then y3 = y3 + stepp End If If x2 = 0 Then y3 = 50 End If appo = x2 End If angolo1 = angolo360(x2, y3, x0, y0) angolo2 = angolo3602(x2, y3, stepp, x0, y0) Form2.List1.AddItem ((f(angolo1, angolo2, massa, raggio, mu, dt, gravita)) & " " & angolo1) Picture1.Refresh x2 = Sin(Radianti(angolo1)) * raggio y2 = Cos(Radianti(angolo1)) * raggio x2 = x0 + x2 If y < 0 Then y2 = -y2 Else y2 = -y2 End If y2 = y0 + y2 Picture1.Circle (-x2, y2), massa Picture1.Line (-x2, y2)-(x0, y0) If angolo1 >= 270 And angolo1 <= 360 Then angolo1 = angolo1 - 360 End If Text1.Text = angolo1 Text2.Text = Math.Round(x2) Text3.Text = Math.Round(y2) Next i If xp < 0 Then xp = xp + dt Else xp = xp - dt End If End Sub Private Sub simulazionependolo() appo2 = 0 xp = Text2.Text yp = Text3.Text yf = yp stepp = dt If xp < 0 Then xf = -xp For u = 1 To 10 movependolosx stepp = stepp - 0.001 movependolodx Next u End If If xp > 0 Then xf = xp xp = -xp For u = 1 To 5 movependolodx stepp = stepp - 0.001 movependolosx Next u End If End Sub
aaa