Ну вот что я имел ввиду
под вращением в реалтайме
спрайт размером 64х48
максимально быстрое вращение
потому и артефакты.
~120 000 тактов.
С уважением,
Jerri / Red Triangle.
а можно спросить - под какую конфу написано? под тс или baseconf (atm3)?Ну вот что я имел ввиду
под вращением в реалтайме
и если можно, исходник?
Ну, это-же хаос
А если этот принцип применить для вращения, то:
1) Пиксели не теряются.
2) Можно поворачивать на любой угол.
Немножко математики
Матрица поворота(c,s),(-s,c)), где: c==cos(alpha), s==sin(alpha)
Матрица сдвига по x(1,k),(0,1))
Матрица сдвига по y(1,0),(k,1)), где: k - коэффициент сдвига, он-же тангенс угла сдвига.
Три матрицы сдвига, которые обеспечивают поворот на угол:
((1,0) , (k1,1))*
((1,k2) , (0,1))*
((1,0) , (k1,1)), где k1==(c-1)/s, k2==s
Звёздочки - матричное умножение , перемножьте эти 3 матрицы, и получите матрицу поворота.
Ну а сдвиг-то сделать легко, и пиксели никуда не теряются и ниоткуда не берутся (размер для пикселей обеспечить надо). Просто сдвигаем столбики/строчки.
Это только математика, вариантов её применения - масса.
[свернуть]
chaos zoomer основан на другом алгоритме и он неуместен к повороту спрайта.
В 3д играх на пц используются матричные преобразования, а для вращения используются кватернионы. С помощью них можно удобно складывать углы вращения и потом одним кватернионом производить сразу все повороты.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
ZXMAK, ты это... пальцем покажи.
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)