Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 2 3 4 5 6 7 8 9 10 11 12 13

Быстрый канвас [Delphi, Windows, ХР]


@!!ex ©   (13.10.09 15:19[240]

Делаешь пустой цикл на миллион итераций. Замеряешь время работы.
После чего делаешь не пустой цикл на миллион итераций. Замеряешь время работы. Отнимаешь первый замер. Получаешь время работы алгоритма.


antonn ©   (13.10.09 22:17[241]


> A вы автор новогодней "кликомании"?

угу, и в ней его код =)


MonoLife ©   (14.10.09 03:20[242]


> antonn ©   (13.10.09 22:17) [241]

Очень симпатичная игрушка. Единственный минус, при увеличении поля более, чем 10х15 (по умолчанию) тормоза (на конфиге Sempron 1.6, 768mb ОЗУ, в.а. Radeon 9600).


antonn ©   (15.10.09 00:31[243]

вроде бы тормозит из-за вывода битмапа в UpdatelayredWindow(), точно сейчас не помню. Еще отключение "иконок" должно придать ускорения (даже не знаю, зачем я их туда запихал...)


CSS   (16.10.09 10:33[244]

Это-то я догадался, но у меня слишком мелкий код и оба замера одинаковы...

Так как там нельзя замерять-то (в посте 235)?

И я ещё вот что подумал... А рисовать линии на битмапе как будет быстрее?
Будет ли быстрее через "ScanLine" чем через стандартный "Image1.Canvas.LineTo()" ?


antonn ©   (17.10.09 00:53[245]


> Будет ли быстрее через "ScanLine" чем через стандартный
> "Image1.Canvas.LineTo()" ?

раз в 10 наверное...


Sapersky   (17.10.09 16:08[246]

Я как-то сравнивал фастлибовские функции рисования линий с GDI-шными - примерно одинаково получилось. Откуда "раз в 10" - оно же не через Canvas.Pixels работает.
Может быть, рисование специфических линий (толстых, пунктиром) в GDI помедленнее. Тоже как-то сравнивал - результаты плохо помню, вроде бы вручную быстрее, хотя и не в 10 раз.


CSS   (17.10.09 20:43[247]

Посоветовали попробовать с "Обобщённым алгоритмом Брезенхэма", но чтот не найду именно обобщённого...

Вы через него рисовали?


antonn ©   (17.10.09 22:25[248]

тьфу, прочел рисование по линиям, типа подряд пипкселы перебирать :)


Sapersky   (18.10.09 16:58[249]

Посоветовали попробовать с "Обобщённым алгоритмом Брезенхэма", но чтот не найду именно обобщённого...
Вы через него рисовали?


Сам я реализаций Брезенхема в обозримом прошлом не писал, использовал фастлиб, какая там реализация - особо не вникал. С толстыми линиями - кажется, там только горизонтальные/вертикальные линии были (и поэтому сравнение с GDI не вполне честное :)).
Можно посмотреть исходники других библиотек - в Graphics32 наверняка есть рисование линий, в Antigrain (AggPas).
Но это имеет смысл только если нужны какие-то особые спецэффекты вроде полупрозрачности/антиалиасинга, а так GDI вполне справляется.


DVM ©   (20.10.09 20:54[250]


> Но это имеет смысл только если нужны какие-то особые спецэффекты
> вроде полупрозрачности/антиалиасинга, а так GDI вполне справляется.
>

Кстати, по поводу антиалиазинга. Программы типа Adobe Illustrator особо не заморачиваются с антиалиазингом отдельных линий, а сглаживают всю сцену уже после рисования всего.


dsoft ©   (04.01.10 23:38[251]


> Sapersky
> В FastLIB есть пример рисования плазмы:


Вопрос на засыпку. ScreenSaver Points Ваша программа? Если да, то как с Вами связаться?


dsoft ©   (05.01.10 02:05[252]


> DomiNickDark   (17.03.09 11:53) [101]
> Проблема проста - предпросмотр СкринСейвера не работает.



В XP стандартные примеры предпросмотра не работают. Я использовал такой вариант:

 ParentWnd := StrToInt(ParamStr(2));
 while not IsWindowVisible(ParentWnd) do
   ProcessMessages;

 GetWindowRect(ParentWnd, PreViewRect);

то есть ждём пока XP не отдаст нам нужный контекст и только тогда отрисовываем. Проблемы исчезли.


antonn ©   (05.01.10 02:44[253]

в drkb есть пример который работает


Sapersky   (06.01.10 03:42[254]

ScreenSaver Points Ваша программа? Если да, то как с Вами связаться?

Морфинг геом. фигур с аппаратным рендером - да.
sapersky[собака]mail.ru
Хотя вопросы по реализации лучше задавать на форуме.


гарри   (01.11.15 21:17[255]

Удалено модератором
Примечание: Задай свой вопрос в отдельной ветке


Страницы: 2 3 4 5 6 7 8 9 10 11 12 13 версия для печати
Обсуждение закрыто


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо