Показать сообщение отдельно
Старый 01.05.2012, 21:12   #3
Brain
AnyKey`щик
 
Аватар для Brain
 
Регистрация: 11.04.2009
Сообщений: 11
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Копирование в буфер криволинейной области

В принципе, скорость копирования пикселей ReadPixelFast/WritePixelFast довольно приемлемая: см. вложения.

Если вам необходимо копировать изображения почти мгновенно, то используйте FastImage (кстати, не бесплатная) - попробовать можно тут http://fastlibs.com/
В этой библиотеке есть специальная функция на такие случае: DrawPoly, пример использования в файле fast.bb (там используется xors3d, но обойтись можно и без него)

Что интересно, скорость обработки изображений в дебаге и в финальной сборке отличается на порядок для чистого блитца, что не относится к аналогичному случаю с библиотекой. Это объясняется тем, что в Blitz3D при дебаге код не компилируется, а интерпретируется. Следовательно скомпилированный проект будет работать быстрее. Так что, возможно и чистого Blitz3D вам хватит.
Алгоритм, подобный приложенному, использовать не стоит, так как он медлителен при большом количестве точек и подходит только для выпуклых многоугольников.
Почитать о многоугольниках можно тут:
Для выпуклых
Для всех

Скомпилированные файлы лежат тут http://dl.dropbox.com/u/11705841/bin.7z
Вложения
Тип файла: zip src.zip (27.9 Кб, 676 просмотров)
(Offline)
 
Ответить с цитированием