есть битмап (100,100)
так как getpixel setpixel медленные то я перевожу витмап в массив RGB(100,100)
нашел алгоритм вращения растра на getpixel setpixel переделал на вращение массива
но всеравно очень медленно работает аж 3 секунды
в функцие очень часто используются Sin Cos Sqrt Atn
есть ли какойто способ для быстрого вращения ?
если нужно могу код показать
Натянуть на квад и glRotatef не судьба?
Оттуда пример Mikle -> скачать
OpenGL
> в функцие очень часто используются Sin Cos Sqrt Atn
заранее считай, епрст
sin/cos там константы на протяжении всего поворота, sqrt и atn зачем там - не представляю
oistalker
понимаеш мне ж ето не для 3д нужно. в ОГЛ с етим конечно проблем небылоб
Медленно...еще бы. GetPixel, SetPixel - замени лучше на ScanLine. И вообще, работай с массивом в памяти, а не с пикселями на экране.
> Sin Cos
Сделай свои функции с заранее расчитанными таблицами значений, скорость повысится.
OpenGL
> понимаеш мне ж ето не для 3д нужно. в ОГЛ с етим конечно проблем небылоб
Если поддержка 9x осей не нужна, то можно посмотреть в сторону SetWorldTransform
http://www.ucancode.net/Visual_C_MFC_Example/Rotate-bitmap-dib-im… c-example.htm
OpenGL
> понимаеш мне ж ето не для 3д нужно.
Это хоть игра? Если да(а также некоторые программы), то используй OpenGL. Рисовать 2D в OpenGL никто не запрещает. Можеш рендерить в битмап. Для таких целей софтварной реализации Mesa3D хватит.
PS:Ник OpenGL. Оправдывай:)
DimaO
так я и работаю с масивом у меня растр в масив (х,у)загнан
вот пикселы с этом масиве и нужно повернуть
oistalker
9 осей хм я о таком и не слышал. Но мне и всеравно лижбы растр вращался на заданый угол как можно быстрее
X512
ет не игра. ) gdi апликейшн
OpenGL
> 9 осей хм я о таком и не слышал.
Ты не понял... Он про Windows 9X (95, 98, ME)
FireFenix
ППЦ ну там и капча зарегатся нереально
5 раз вводил правельный код подтверждения и всё время сообщение вв ввели неверно
если можеш то отошли мне на почту плиз исходник
Я забыл, что с форму скачивать файлы тока после регистрации :(
Перезалил на мегааплоад
Rotate (Mikle)
Fast Rotate AA
oistalker спс ну там много апи
хз как их юзать на .нет
FireFenix
ооо спс это то что нужно да еще и на VB просто супер
OpenGL
> хз как их юзать на .нет
причем тут тогда gdi ?
private Bitmap rotateImage(Bitmap b, float angle) { //create a new empty bitmap to hold rotated image Bitmap returnBitmap = new Bitmap( b.Width, b.Height); //make a graphics object from the empty bitmap Graphics g = Graphics.FromImage( returnBitmap); //move rotation point to center of image g.TranslateTransform( ( float)b.Width/2,( float)b.Height / 2); //rotate g.RotateTransform( angle); //move image back g.TranslateTransform( -( float)b.Width/2,-( float)b.Height / 2); }
http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-rotate
Тема в архиве.