![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вращение изображения вокруг вращающегося изображения
Luarvic © (2011-05-03 16:11:00)Есть изображение которое вращается вокруг своего центра (это реализовал). Нужно чтобы второе изображение вращалось вокруг центра первого, а так же вокруг своего центра. То есть например первое изображение - ручка топора, а второе - лезвие.
Делаю так:
center.x:=img1.Width/2+img1.X;//центр первого изображения
center.y:=img1.Height/2+img1.Y;//
center2.x:=Width/2+img2.relat.x;//центр второго
Center2.y:=Height/2+img2.relat.y;//relat - координаты левого верхнего угла второго изображения с началом координат в левом верхнем угле первого изображения
cs:=cos(DegToRad(Angle));
ss:=sin(DegToRad(Angle));
x:=center2.x*cs-center2.y*ss+center.x;//тут X,Y - результирующие координаты второго изображения
y:=center2.x*ss+center2.y*cs+center.y;//
Это правильно?
KilkennyCat (2011-05-04 01:36:00) [1]GDI+ и ноу проблем.
Jeer (2011-05-04 00:35:00) [2]
> В общем решил
Ну решил, так - решил.
Зачем других беспокоить такой мелочью ?
Luarvic (2011-05-03 16:34:00) [3]Ну во первых это у меня игра, движок готовый на Opengl. Вращения вокруг центра уже там реализовано, я координатами спрайтов оперирую.
В общем решил не относительные координаты хранить а радиус "орбиты" и угол для второго изображения.
Luarvic (2011-05-03 16:27:00) [4]Да, Луна как пример подойдет. Идея такая: есть центральное изображение, на него "навешиваются" другие, центральное двигается, вращается, а навешенные повторяют все движения...
Рамиль (2011-05-03 16:27:00) [5]И еще есть функции SetWorldTransform, GetWorldTransform, ModifyWorldTransform
Не пересчитывать же каждую точку изображения вручную.
Anatoly Podgoretsky (2011-05-03 16:21:00) [6]> Luarvic (03.05.2011 16:11:00) [0]
Луну хочшь эмулировать?
Рамиль (2011-05-03 16:21:00) [7]
> Это правильно?
А запустить и посмотреть?
Почитайте, что бы велосипед не изобретать
http://compgraphics.info/2D/affine_transform.php