![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поворот картинки
artix © (2004-03-05 17:41:00)Надо сделать чтоб была картинка вращающейся земли
Defunct (2004-03-05 18:53:00) [1]WebErr торговая марка " :))))" типа знак качества CCCP
WebErr (2004-03-05 18:51:00) [2]
> artix (05.03.04 18:46) [17]
> ТОли нет апишки, которая bitmap поворачивает ?
Ручками!!! :))))
Defunct (2004-03-05 18:48:00) [3]artix (05.03.04 18:46) [17]
Нет
artix (2004-03-05 18:46:00) [4]ТОли нет апишки, которая bitmap поворачивает ?
WebErr (2004-03-05 18:40:00) [5]Сделаешь всё, как написано - получишь наложение битмапа на сферу. Упростить можно - изменяй углы a, b в линейной зависимости b(a) = k*a + c, где k, c - это некоторые константы.
В общем удачи - алгоритм непростой! :))))
artix (2004-03-05 18:31:00) [6]хотел сказать можно
artix (2004-03-05 18:30:00) [7]Всятаки я не понял как положить её на сферу. Модно упростить, что крутилась только по одной оси
WebErr (2004-03-05 18:29:00) [8]
> artix (05.03.04 18:16) [12]
Разумеется! Её-то мы и положим в результате на сферу и будем крутить! Если взять физическую карту без обозначений, то будет выглядеть как снимки из космоса!!! :))))
artix (2004-03-05 18:16:00) [9]А если есть текстура(bmp), а вот её можно повернуть на определенный угол
WebErr (2004-03-05 18:15:00) [10]В общем не для слабонервных алгоритм! :))))
WebErr (2004-03-05 18:13:00) [11]В общем идея следующая:
проекция шара на плоскость (экран) всегда круг!
надо заполнить круг пикселями нужного цвета, вычисление которого занимает у меня 2 условных листа.
В каждой точке (X, Y) ищем Z=R*R-sqrt(X*X+Y*Y).
Потом вектор P=(X,Y,Z) умножаем на матрицу поворота T(a,b)
|| сos(a) -sin(a) 0 ||
|| sin(a)*cos(b) cos(a)*cos(b) -sin(b) ||
|| sin(a)*sin(b) cos(a)*sin(b) cos(b) ||
Где a, b - произвольные углы, которые в итоге и будут задавать вращение сферы (земли).
Далее работа с текстурой.
Координаты пикселя текстуры (xt, yt) вычисляются по ф-ле
xt = arctan(y/x)/pi
yt = arccos(z/R)/2/pi
Где (x, y, z) = Q - вектор полученный при повороте вектора P.
Получаем цвет пикселя текстуры!!! Ура!
Осталось только умножить компоненты R-G-B этого пикселя на косинус угла между нормалью и вектором падения света.
artix (2004-03-05 18:02:00) [12]попроще, но получше :)
Fay (2004-03-05 17:59:00) [13]2WebErr © (05.03.04 17:54) [4]
Интересно, а разработчики TheBat! применяли скелетную анимацию для своей иконки, чтобы крыльями махала?
YurikGl (2004-03-05 17:57:00) [14]> WebErr © (05.03.04 17:54) [4]
Непонятно-же, что человеку надо. Может 3D, а может что попроще
artix (2004-03-05 17:57:00) [15]Буду очень благодарен. 10 фреймов будет нерельно выглядеть. Я видел opengl рисуют, там вообще кул поолучается. Только я нефига в opengl не понимаю
tsisyckroma@mail.ru
WebErr (2004-03-05 17:55:00) [16]
> YurikGl © (05.03.04 17:52) [3]
Сие есть неинтересно! :))))
WebErr (2004-03-05 17:54:00) [17]Я делал такую 3D-хрень, благодаря ей я сейчас получил работу программиста, так что это не так-то просто. Я сделал её на С++, но если интересно, я могу прислать её на e-mail. Оставьте свой e-mail, я пошлю туда ехе с исходниками. :))))
YurikGl (2004-03-05 17:52:00) [18]Нарисовать 10 картинок, и пускать их поочереди
З.Ы. у меня есть такие, погу скинуть по почте.
artix (2004-03-05 17:51:00) [19]Не ну как землю врашяющуюся сделать.
Fay (2004-03-05 17:43:00) [20]Надо взять картинку вращающейся земли и дать ей быть.