Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24

Почему так медленно работает SetPixel?

14.10.2015, 11:25. Показов 2048. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Видел похожие темы но ответа не нашел. Не могу понять почему так медленно работает Setpixel. Внеэкранный буфер помогает но не так как хотелось бы. Как можно ускорить прорисовку экрана, если можно примерчик.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2015, 11:25
Ответы с готовыми решениями:

Почему запрос работает так медленно?
Привет. Появилась проблема с запросом. Уже второй час пытаюсь решить, начинает крыша ехать(((. Суть проблемы: есть два запроса в одной...

Почему эта программа работает так медленно?
Раньше работала нормально, но у меня вырубился комп изменения не сохранились и я не помню как было. unit Unit18; interface ...

Найти способ решения проблемы - функция setPixel() работает очень медленно (SFML)
В sfml функция setPixel() работает очень медленно, можно-ли попиксельно редактировать изображение другим способом?

11
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.10.2015, 11:29
Так покажи, что именно ты рисуешь, чтобы можно было сделать примерчик, работающий быстрее...
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
14.10.2015, 15:12
setpixel(20,20,clRed) работает мгновенно, а если тебе нужно вывеси 100000 точек, координаты и цвет которых вычисляется по каким-то навороченным формулам, то будет долго.
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
14.10.2015, 19:32  [ТС]
Ну например вот

Pascal
1
2
3
4
5
6
7
uses graphabc, utils;
begin
for var x:=1 to 300 do
for var y:=1 to 300 do
setpixel(x,y,clblue);
writeln(milliseconds);
end.
Работает больше секунды хотя там и формулы не навороченные и всего 300 на 300 пикселей
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.10.2015, 19:36
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А на кой попиксельно рисовать то, на что есть примитивы? FillRect тебе зарисует - глазом моргнуть не успеешь.

Добавлено через 1 минуту
И Lock помогает ускориться:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
uses
  graphabc, utils;
 
begin
  LockDrawing;
  for var x := 1 to 300 do
    for var y := 1 to 300 do
      setpixel(x, y, clblue);
  writeln(milliseconds);
  Redraw;
  
end.
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
14.10.2015, 19:41  [ТС]
FillRect ето хорошо но если нужно сложный обект нарисовать например и кстати в pascalabc setpixel почемуто побыстрее будет
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
14.10.2015, 19:44
Цитата Сообщение от MyNameIsIgor Посмотреть сообщение
но если нужно сложный обект нарисовать
Если его нельзя разбить на правильные фигуры, то все равно не setpixel, а floodfill, хотя хрен не сильно слаще редьки...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.10.2015, 19:46
Цитата Сообщение от MyNameIsIgor Посмотреть сообщение
если нужно сложный обект нарисовать
Значит, поточечно рисуешь его контуры, и заливаешь FillPolygon-ом. Очень даже быстро рисуются достаточно сложные объекты, гораздо быстрее, чем рисовать и заливать FloodFill-ом.
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
14.10.2015, 19:49  [ТС]
Тогда еще такой вопрос каким образом в графических программах получают 60+ фпс и там полноекранный режым
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.10.2015, 19:53
В программах, написанных на PABC.NET? С использованием модуля graphabc? Или все-таки используют OpenGL или другую какую-то библиотеку, заточенную на сложную графику?
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 24
14.10.2015, 19:56  [ТС]
Ну я думаю на нетовских же можно написать чтото стоящее
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.10.2015, 20:25
Цитата Сообщение от MyNameIsIgor Посмотреть сообщение
Ну я думаю на нетовских же можно написать чтото стоящее
Ну с DirectX можно. Потому что о обеспечивает аппаратную закраску треугольников. А софтверный на нете будет еще медленнее чем unmanaged.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2015, 20:25
Помогаю со студенческими работами здесь

Почему SetPixel по оси OY не работает
Доброго времени суток) При открытии модального окна должен вырисовываться график(представлен на рисунке), а рисуется только прямая, такое...

Почему функции VBA так медленно работают?
Привет всем, Еще вопрос. Я создал в VBA функцию, которая по сложной формуле считает не важно что. Если я в рабочей книге...

Почему в ARCHIVELOG так медленно выполняется DDL?
Здравствуйте, у меня проблема. Включаю режим ARCHIVELOG и Oracle начинает жутко тормозить при выполнении DDL запросов. Без ARCHIVELOG всё...

Почему на флеш-накопитель так медленно производится запись?
Почему на флеш-накопитель так медленно производится запись? в данном случае - один видеофайл.

Почему медленно работает setInterval?
Делаю движение картинки влево-вправо (меняю left с 30px на 10px, потом обратно). подскажите, пожалуйста, почему в Safari эта анимация...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru