22 Сентября 2024, 06:24:59
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > База исходников (cgr/igr) > Часы
Часы
(Прочитано 14671 раз)
  [1]
Печать
Sonjaaa | Гость |
Часы |
0
В данном примере решила показать, как быстренько сделать движение стрелок часов, показывающие время на компьютере пользователя.
Оперируя с данными переменными можно легко отобразить текущую дату, изменять приветствие в презентации в зависимости от времени суток и многое другое, где нужна реакция на реальное время...(вид за окном, освещение и т.п.)
P.S.: не думаю, что у кого-то установлено на компьютере неправильное время  Подмигивающий

Название: Clock.rar
Размер: 855.52 кб
Ссылка для скачивания файла: http://ifolder.ru/6036000
Ovod | ** | Пользователь | Сообщений: 91 | «Ответ #1 06 Апреля 2008, 13:16:33 »
Re: Часы |
1
Хехех) Как раз очень-таки даже наоборот, может) У меня на домашней машине время на час вперед, дома я живу по московскому времени)
Спасибо за отличный пример, у меня все работает. Не совсем, правда, понимаю, откуда берутся параметры времени  Строит глазки
Sonjaaa | Гость |
Re: Часы |
2
Хехех) Как раз очень-таки даже наоборот, может) У меня на домашней машине время на час вперед, дома я живу по московскому времени)...

Не совсем поняла, что это значит и зачем... но не суть.
Время, которое отображается - это время, установленное на компьютере.

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

Впервые столкнулась с данной задачей, когда делала screensaver для одной компании, в котором должны были отображаться часы, дата, день недели и меняться обстаконовка на экране на протяжении дня.
И, что касается времени, нашла для себя вот такой подход.

Распишу для данного примера, как я делаю анимацию вращения стрелок и откуда берутся параметры времени.
(Для секундной стрелки)

Когда готова модель часов и загружены отдельно стрелки, которые будут двигаться, приступаем к их анимации.
ВАЖНО: обратить внимание на центр поворота стрелок и ось вращения; все стрелки на 12 часов, т.е. угол поворота равен 0.
Так как вся анимация построена на вращении стрелки, мы будем изменять величину поворота объекта(стрелки) по нужной нам оси  в зависимости от времени.
Чтобы получить параметры времени, воспользуемся каналом TextOperator, в свойствах которого выбираем Time/date to string(format text) (отображение даты и времени в различных формах в текстовом формате) и так как нам нужно время только в виде секунд, добавим как вводную нод Text с текстом %S (%S - для секунд, %M - для минут, %H - для часов; подробнее о вводных можно посмотреть в справке, выделив нод TextOperator и нажав F1). В результате мы имеем текстовую строчку (string), в которой отображаются секунды на данный момент времени. Для того, чтобы можно было работать с этими данными переведем текст в циферки, воспользовавшись нодом Value Operator, в свойствах которого установим Text to integer value (text). И вот мы имеем уже число, которое можно вставлять в формулы, и которое постоянно изменяется.
Теперь нам нужно получить угол поворота стрелки, для чего берем канал Expression Value, в котором запишем зависимость от времени. Прикручиваем к нему, как вводную А, наше время. Для секундной стрелки, впрочем как и для минутной, угол поворота будет равен А * 6, где А - количество секунд (0 - 59), и выходной параметр будет равен от 0 до 354 (градусов!). Но в отличии от секции Animation, где вращение объекта отображается в градусах и программа автоматически переводит их в радианы, тута мы должны все сделать вручную. Для этого воспользуемся формулой перевода градусов в радианы: RAD=(DEG*PI)/180 и как результат имеем следующее выражение: (A*6*PI)/180.
Все, прикрепляем что получилось к ссылке нужной оси канала, отвечающего за вращение объекта, и так как секунды постоянно изменяются, имеем такое же постоянное вращение стрелки.

Извиняюсь, за столь подробное описание, что-то меня понесло... Смеющийся Шокированный


To Administrator: не могу прикреплять картинки, пишет нет места.
« Последнее редактирование: 06 Апреля 2008, 20:38:38 от Sonjaaa »
Ovod | ** | Пользователь | Сообщений: 91 | «Ответ #3 07 Апреля 2008, 00:45:35 »
Re: Часы |
3
Ничего не понесло, это все важно и полезно, спасибо.
Sonjaaa, а почему A на 6 умножаем?
Sonjaaa | Гость |
Re: Часы |
4
... Sonjaaa, а почему A на 6 умножаем?
Так как полный оборот составляет 360 градусов, а секунд 60 (0-59), следовательно 360/60=6. При значении 0 сек - угол равен 0; при 1 сек - (6*1)=6 градусов;... при 59 сек - (59*6)= 354 градуса; а дальше опять 0 сек - угол опять 0 градусов (360 полный оборот). Поворот составляет 6 градусов в сек.
Ovod | ** | Пользователь | Сообщений: 91 | «Ответ #5 07 Апреля 2008, 01:13:15 »
Re: Часы |
5
Да, действительно, 6 градусов в секунду. Что-то я не допетрил. У вас, математиков, это все рефлекторно выходит, надо вливаться потихоньку в тему.
zlovred_44 | ** | Пользователь | Сообщений: 71 | «Ответ #6 04 Октября 2008, 02:20:37 »
Re: Часы |
6
 Грустный немогу на ifolder пройти... браузер неокрывает.
Sonjaaa можеш положить ещё и на rapidshare?
Sonjaaa | Гость |
Re: Часы |
7
Выкладываю:
http://rapidshare.com/files/150697178/Clock.rar.html
или
http://narod.ru/disk/2974245000/Clock.rar.html
zlovred_44 | ** | Пользователь | Сообщений: 71 | «Ответ #8 04 Октября 2008, 12:47:16 »
Re: Часы |
8
Sonjaaa   спасибо! скачал-буду просвещаться...
Часы классные!!!
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > База исходников (cgr/igr) > Часы
Перейти в: