Войти

Показать полную графическую версию : Графический счетчик на паскале


Bazalt
15-10-2004, 10:33
Нужно сваять на Pascale графический счетчик (типа как на старых магнитофонах). Т.е. три "вращающихся" колеса с цифрами.

Если вопрос ламерский, просьба не кричать, а ткнуть носом в конкретный хелп или поделиться исходником. Спасибо.

fossil
15-10-2004, 17:09
Bazalt
Что-то не очень ясен вопрос

JCooper
16-10-2004, 14:42
Bazalt
Кокретизируйте вопрос. Проблемы с графикой или может быть таймером?

Bazalt
16-10-2004, 19:27
Согласен, задачу сформулировал плохо.

Интересует именно графическая часть, то есть реализация скролла "колес" с цифрами.

Prisoner
17-10-2004, 04:24
Если нужно высокое (или хотя бы среднее) качество графики, то, имхо, легче нарисовать их (знакомый 3d-мастер поможет). Если же дискретность в движении не мешает, то поглядеть какая закономерность в изменении вида изображения некой цифры на барабане т.е. опять-таки повращать руками в каком-либо редакторе графики. Может быть получится понять, как в зависимости от показателя разряда установить визуальное представление.

bgg0408
17-10-2004, 04:36
Интересует именно графическая часть, то есть реализация скролла "колес" с цифрами.
т.е. как представить их поворот на экране???
Предлагаю следющий вариант:
3 колеса в нулевом положении...
поворачиваем колесо младшего разряда на n градусов => колесо следующего разряда поворачивается на n/36 градусов => старшего разряда - на n/3.6 градуса
как повернуть колесо?
вариант 1
просто сместить изображение цифр вниз на некоторое число пикселей
вариант 2
физически и математически правильный...
У нас есть колесо, на нем цифры.. Для того, чтобы "правильно" отобразить их на экране, нам надо спроецировать изображение на колесе на плоскость... Для этого есть соответствующие вполне выводимые формулы... Поворачиваем колесо на некоторый угол => соотвествующим образом изменяется его проекция...
PS: я правильно понял вопрос?

Исправлено: bgg0408, 4:37 17-10-2004

Guest
21-10-2004, 12:52
Данная задача довольно тривиальна.
Всё, что нужно это создать массив из 10(или более элементов, если используется другая система счисления) символов:
char*decimal[10,8];
и записать туда графический образ чисел.
Далее с помощью вложенных циклов организуем смещение вывода чисел, т.е. на каждом шаге поднимаем(опускаем) граф. матрицу числа.
Если возникнут вопросы с реализацией - спрашивайте!

Добавлено:

Да, совсем забыл, что граф. матрицу числа лучше всего взять высотой соответствующей кол-ву цифр системы счисления или хотя бы кратной ей.
После смены числа в младшем разряде нужно сместить на 1 пиксель цифру в старшем(следующем).
Эффект колеса  организуется с помощью переноса нижней части матрицы в верхнюю по-строчно.
Промежутки времени между сдвигами определяются спомощью задержек или работой самой программы.




© OSzone.net 2001-2012