![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Annuta |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 3.10.2006 Где: Dubna Репутация: нет Всего: 1 |
Подскажите пожаста, у меня есть текст, который я отображаю на форме /в едите/, каким способом проще всего осуществить его смену "эффектом воды"... Т.е. поялвяется текст.. на 1 минуту, затем "волнами бликами" становится прозрачным... поялвяется другой текст...
Что лучше использовать - что проще ? Может где почитать ? --------------------
Программист - это комбинация лени и логики ! |
|||
|
||||
ZeroMem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 24.8.2004 Где: Комсомольск-на-Ам уре Репутация: нет Всего: нет |
Эээ... ну так сразу сложно сказать. Но я бы сделал это через шейдеры на DirectX. Но это уже изврат я так думаю.
Вообще, мысль есть такая. Вот тебе надо одну надпись на другую сменить. Сделай так. Ты зарисуй в памяти эти надписи, просто отрисуй в некоторые 2 картинки одинакового размера. А далее уже как ты хочешь чтобы твое "водное перетикание" шло. Воспользуемся физикой. Примем некоторый волновой закон, вида y = A*sin(kx [+ phi]) за истинный для твоей волны. Далее, проходя по всей картинки нужно смешивать цветовые компоненты пикселя с учетом этого закона. То есть берешь где-нибудь точку (x0, y0) и считаешь, что это у тебя источник волновых колебаний. В зависимости от удаленности (можно по т. Пифагора ее посчитать) от источника, получаешь y. Далее простая пропорция: A - текущая компонента цвета. y - новая компонента цвета. => (новая компонента цвета) = y * (текущая компонента цвета) / A. Амплитуду A можно просто подобрать. |
|||
|
||||
Annuta |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 3.10.2006 Где: Dubna Репутация: нет Всего: 1 |
...Спасибо! ...Да тут видно без физики никуда!!! Буду думать!
![]() --------------------
Программист - это комбинация лени и логики ! |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |