Показать полную графическую версию : Графический счетчик на паскале
Нужно сваять на Pascale графический счетчик (типа как на старых магнитофонах). Т.е. три "вращающихся" колеса с цифрами.
Если вопрос ламерский, просьба не кричать, а ткнуть носом в конкретный хелп или поделиться исходником. Спасибо.
Bazalt
Что-то не очень ясен вопрос
Bazalt
Кокретизируйте вопрос. Проблемы с графикой или может быть таймером?
Согласен, задачу сформулировал плохо.
Интересует именно графическая часть, то есть реализация скролла "колес" с цифрами.
Prisoner
17-10-2004, 04:24
Если нужно высокое (или хотя бы среднее) качество графики, то, имхо, легче нарисовать их (знакомый 3d-мастер поможет). Если же дискретность в движении не мешает, то поглядеть какая закономерность в изменении вида изображения некой цифры на барабане т.е. опять-таки повращать руками в каком-либо редакторе графики. Может быть получится понять, как в зависимости от показателя разряда установить визуальное представление.
Интересует именно графическая часть, то есть реализация скролла "колес" с цифрами.
т.е. как представить их поворот на экране???
Предлагаю следющий вариант:
3 колеса в нулевом положении...
поворачиваем колесо младшего разряда на n градусов => колесо следующего разряда поворачивается на n/36 градусов => старшего разряда - на n/3.6 градуса
как повернуть колесо?
вариант 1
просто сместить изображение цифр вниз на некоторое число пикселей
вариант 2
физически и математически правильный...
У нас есть колесо, на нем цифры.. Для того, чтобы "правильно" отобразить их на экране, нам надо спроецировать изображение на колесе на плоскость... Для этого есть соответствующие вполне выводимые формулы... Поворачиваем колесо на некоторый угол => соотвествующим образом изменяется его проекция...
PS: я правильно понял вопрос?
Исправлено: bgg0408, 4:37 17-10-2004
Данная задача довольно тривиальна.
Всё, что нужно это создать массив из 10(или более элементов, если используется другая система счисления) символов:
char*decimal[10,8];
и записать туда графический образ чисел.
Далее с помощью вложенных циклов организуем смещение вывода чисел, т.е. на каждом шаге поднимаем(опускаем) граф. матрицу числа.
Если возникнут вопросы с реализацией - спрашивайте!
Добавлено:
Да, совсем забыл, что граф. матрицу числа лучше всего взять высотой соответствующей кол-ву цифр системы счисления или хотя бы кратной ей.
После смены числа в младшем разряде нужно сместить на 1 пиксель цифру в старшем(следующем).
Эффект колеса организуется с помощью переноса нижней части матрицы в верхнюю по-строчно.
Промежутки времени между сдвигами определяются спомощью задержек или работой самой программы.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.