Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Проблема с часами Добавлено: 29.05.07 22:15  

Автор вопроса:  Loki
Помогите, пожалуйста.
Есть программа "Часы". Программа показывает системное время в виде механических часов. Примеры есть на сайте. Так вот, нужно сделать так, чтобы можно было курсором мыши перетаскивать часовые, минутные и секундные стрелки. Стрелки прорисовываются на форме либо как линии, либо как массив рядом стоящих рисунков (кругов). Линиям задается функция, с помощью которой стрелки двигаются.

Как сделать так, чтобы эти стрелки можно было передвигать по кругу с помощью курсора? Грубо говоря, поменять на часах время так, как мы меняем его на обычных механических часах, но с помощью мыши.

Буду признателен, если кто-нибудь поможет.

Ответить

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

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 30.05.07 01:47
Обрабатываешь клик мыши на поле часов.
Смотришь, конец какой стрелки ближе всего к этой точке.
Запоминаешь эту стрелку.
При перемещениях мыши с зажатой кнопкой считаешь угол, на который должна быть повернута стрелка, чтобы она указывала на эту точку.
Перемещаешь стрелку.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 30.05.07 08:45
Плюс пересчитываешь время. А ещё надо определять по часовой или против часовой поворачиваем стрелку, а то как знать, куда собирались перевести время.

Ответить

Номер ответа: 3
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #3 Добавлено: 30.05.07 10:53
Впросто надо знать углы поворота всех стрелок.
При MouseDown найти стрелку с углом равным углу вектора от центра циферблата к курсору и запомнить эту стрелку (lngSetrelka = номер_стрелки)
При MouseMove + Button=1 вычислить угол вектора от центра циферблата к курсору и установить этот угол запомненной ранее стрелке

Надо будет еще написать функцию перевода угла поворота стрелки в часовую (непомню как точно называется) систему, т.е. по углу вычислить часы, минуты или секунды

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 30.05.07 11:50
Короче задача разбивается на множество подзадач. Сам по себе вопрос интересный. Много чего можно придумать.

Ответить

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



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #5 Добавлено: 30.05.07 11:56
Короче задача разбивается на множество подзадач

Так проще. Всегда так делаю

Ответить

Номер ответа: 6
Автор ответа:
 Loki



Вопросов: 1
Ответов: 1
 Профиль | | #6 Добавлено: 31.05.07 17:08
Спасибо. Ох, осталолось все это как код написать...

Ответить

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



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 01.06.07 22:37
О, это уже дело техники, элементарно..

Ответить

Страница: 1 |

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



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