Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Возвращаясь к аналоговым часам... Добавлено: 26.02.09 20:56  

Автор вопроса:  Imperial Kashak | ICQ: 479713821 
Была у меня такая тема, только я её потерял здесь насмерть...

В общем так: кто-то из местных мне писал исходник для аналоговых часов, т.к. у меня выходили проблемы с конечными координатами стрелок.

Прошу, ежели не трудно, выложить ещё раз исходник простейших аналоговых часов (ну или хотя бы алгоритм употребления sin|cos).

Ответить

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

Номер ответа: 1
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #1
Добавлено: 26.02.09 21:18
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=22038&lngWId=1

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 26.02.09 22:45
Боцман, чо то там слишком много букаф...
я как то давненько тоже писал аналоговые часы, но у меня код гораздо меньше был.. (правда я на C# писал)

Ответить

Номер ответа: 3
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #3
Добавлено: 26.02.09 23:01
EROS пишет:
Боцман, чо то там слишком много букаф...

Ну сколько есть. пусть сам выбирает вверху в поле Quick Search for: нужно ввести Analog Clock и нажать кнопку Quick Search будет 73 образчика часов. Вот пусть там и выбирает.

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 27.02.09 07:02
  1. len = 100
  2. alpha = Pi / 2 - (hour mod 12) / 12 * 2 * Pi
  3. line (0,0) - (cos(alpha) * len, sin(alpha) * len)

Ответить

Номер ответа: 5
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #5 Добавлено: 27.02.09 13:46
Так, попробую въехать: len - это просто длина стрелки, alpha - угол, на который она ежесекундно перемещается, line - прорисовка стрелки, так?

Ответить

Номер ответа: 6
Автор ответа:
 Imperial Kashak



ICQ: 479713821 

Вопросов: 10
Ответов: 57
 Профиль | | #6 Добавлено: 27.02.09 14:01
альфа = из половины окружности отнять остаток от деления текущего часа на 12 - это числитель, а в знаменателе 24 раза пи.
Вот здесь можно подробнее?

P.S. часы не идут (уже с таймером), но показывают текущий час ))

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 27.02.09 19:25
ну текущий-то час показывают. Значит идут.

Ответить

Номер ответа: 8
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #8 Добавлено: 27.02.09 23:41
Imperial Kashak, задачка очень простая, достаточно базовых школьных знаний тригонометрии. Я в школе еще такое делал.

Самое сложное - правильно рассчитать нужный угол, ну и плюсы/минусы координат. Я когда первы раз в жизни писал, написал по формуле из книжки по математике, запускаю - стрелка вообще не в том положении что надо, и крутится в обратную сторону :) Не учел, откуда идет отсчет угла в часах и в книжке, и направления координатных осей :)
Экспериментально подобрал все что нужно.

Я правда поприкольнее делал - у меня не просто Line (0,0)-(x,y), а были стрелки прямоугольной формы, которые висели над экраном (регионы) и были полупрозрачные. Ну и еще деления тоже были в виде прямоугольников... Прикольная была штука, жаль исходники загубил хз когда.

Ответить

Страница: 1 |

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



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