Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вопросик Добавлено: 21.02.03 20:40  

Автор вопроса:  Synax | Web-сайт: elance.ru/sands

Есть круг, есть линия (хочу сделать круглые часы)

как сделать чтобы стрелка прошла по  кругу ( как в часах)

Помогите пожалуйста , а то я в 8 классе ещё Синус и Косинус не учил

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 aka



Вопросов: 2
Ответов: 60
 Web-сайт: hotmix.narod.ru
 Профиль | | #1
Добавлено: 22.02.03 05:53
Выучишь хотя бы синус, приходи

Ответить

Номер ответа: 2
Автор ответа:
 Synax



Вопросов: 20
Ответов: 61
 Web-сайт: elance.ru/sands
 Профиль | | #2
Добавлено: 22.02.03 11:13

Ну я знаю что Синус это длина стороны напротив угла, разделенного на длину гипотенузы.

Теперь помочь можете?

Ответить

Номер ответа: 3
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #3
Добавлено: 22.02.03 11:16

Да просто рисуй стрелку - новую нужным цветом, струю - цветом фона.

Ответить

Номер ответа: 4
Автор ответа:
 Synax



Вопросов: 20
Ответов: 61
 Web-сайт: elance.ru/sands
 Профиль | | #4
Добавлено: 22.02.03 11:35

Моя проблема найти х,у каждой точки на окружности!

Ответить

Номер ответа: 5
Автор ответа:
 aka



Вопросов: 2
Ответов: 60
 Web-сайт: hotmix.narod.ru
 Профиль | | #5
Добавлено: 23.02.03 01:39

Ладно, уговорил...

Значит так:
1) Размещаешь на форме таймер обозвав его tmrClock,
интервал ему ставишь 100
2) Размещаешь на форме Line обозвав ее linClock,
и ставишь ей Index=0 (ноль)
3) Вставляешь в форму следующий код:

Option Explicit
DefDbl A-Z

Private Sub Form_Load()
    Width = 4000
    Height = 4000
    Left = Screen.Width \ 2 - 4100
    Top = (Screen.Height - Height) \ 2
End Sub

Private Sub Form_Resize()
    Dim i, Angle
    Static Flag As Boolean
    If Flag = False Then
        Flag = True
        For i = 0 To 14
            If i > 0 Then Load linClock(i)
            linClock(i).Visible = True
            linClock(i).BorderWidth = 5
            linClock(i).BorderColor = RGB(0, 128, 0)
        Next i
    End If
    For i = 0 To 14
        Scale (-1, 1)-(1, -1)
        Angle = i * 2 * Atn(1) / 3
        linClock(i).X1 = 0.9 * Cos(Angle)
        linClock(i).Y1 = 0.9 * Sin(Angle)
        linClock(i).X2 = Cos(Angle)
        linClock(i).Y2 = Sin(Angle)
    Next i
End Sub

Private Sub tmrClock_Timer()
    Const HourHand = 0
    Const MinuteHand = 13
    Const SecondHand = 14
    Dim Angle
    Static LastSecond
    'Position hands only on the second
    If Second(Now) = LastSecond Then Exit Sub
    LastSecond = Second(Now)
    'Position hour hand
    Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
    linClock(HourHand).X1 = 0
    linClock(HourHand).Y1 = 0
    linClock(HourHand).X2 = 0.3 * Cos(Angle)
    linClock(HourHand).Y2 = 0.3 * Sin(Angle)
    'Position minute hand
    Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
    linClock(MinuteHand).X1 = 0
    linClock(MinuteHand).Y1 = 0
    linClock(MinuteHand).X2 = 0.7 * Cos(Angle)
    linClock(MinuteHand).Y2 = 0.7 * Sin(Angle)
    'Position second hand
    Angle = 0.1047 * (75 - Second(Now))
    linClock(SecondHand).X1 = 0
    linClock(SecondHand).Y1 = 0
    linClock(SecondHand).X2 = 0.8 * Cos(Angle)
    linClock(SecondHand).Y2 = 0.8 * Sin(Angle)
End Sub

4) ДАВИШЬ F5 --> 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам