Clonenet - Onde Nada Se Cria Tudo Se Copia
BuscaPé, líder em comparação de preços na América Latina

Movimentos circulares em Visual Basic (o uso do Pi)

Neste artigo apresentarei alguns exemplos de códigos usando o Pi para
calculo da posição de um ponto numa circunferência.

Relógio

Com três linhas no formulário(Line1 , Line2, line3 ), um Objeto Timer(Timer1):


'Janela do projeto , as linhas são posicionada durante a leitura da janela

Dim CentroX As Integer
Dim CentroY As Integer
Dim RaioHora As Integer
Dim RaioMinuto As Integer
Dim RaioSec As Integer
Dim Pi As Long
'_______________________________________________________________


Private Sub Form_Load()
Pi = 3.14159265358979
Dimenção
End Sub
'_______________________________________________________________

Sub Dimenção()
RaioSec = Form1.Height * 0.5
'Define tamanho do poteiro _
de segundos para 50% da altura da janela

RaioMinuto = Form1.Height * 0.4
RaioHora = Form1.Height * 0.3
CentroY = Form1.Height / 2
CentroX = Form1.Width / 2
Line1.X1 = CentroX: Line1.Y1 = CentroY
Line2.X1 = CentroX: Line2.Y1 = CentroY
Line3.X1 = CentroX: Line3.Y1 = CentroY

End Sub
'_______________________________________________________________


Private Sub Form_Resize() 'Evento que ocorre ao redimensionar a janela
Dimenção
End Sub
'_______________________________________________________________

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Text1 = Cos(Pi)
End Sub
'_______________________________________________________________


Private Sub Timer1_Timer()
Form1.Caption = Time
s = Second(Time)
'extrai os segundos da hora atual
m = Minute(Time)
'minutos
h = Hour(Time)
'Horas
If s > 14 Then s = s - 15 Else s = s + 45 ' atrazo de 1\4
If m > 14 Then m = m - 15 Else m = m + 45 ' atrazo de 1\4
If h > 2 Then h = h - 3 Else h = h + 9

Line3.X2 = Cos((Pi / 30) * s) * RaioSec + CentroX
Line3.Y2 = Sin((Pi / 30) * s) * RaioSec + CentroY
Line2.X2 = Cos((Pi / 30) * m) * RaioMinuto + CentroX
Line2.Y2 = Sin((Pi / 30) * m) * RaioMinuto + CentroY
Line1.X2 = Cos((Pi / 6) * h) * RaioHora + CentroX
Line1.Y2 = Sin((Pi / 6) * h) * RaioHora + CentroY

End Sub

' O executável funcionando

0 comentários: