| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Сглаживание? |
| Автор: ivan219 14.3.2007, 21:07 |
| Вот нарисовал я линию при помощи Canvas получилась лесенка а как зделать так чтоб была не лесенка а "прямая линия" нарисованная под углом конечно, вобщем нужен алгоритм зглажевания |
| Автор: Snowy 14.3.2007, 21:20 |
| Это называется антиалиасинг. В стандартном GDI отсутствует. Используй GDI+ - там он просто включается. |
| Автор: ivan219 14.3.2007, 21:53 |
| Да точно antialiasing Snowy, что неужели в GDI ничего нельзя зделать ведь GDI+ в Win98 непойдёт или пойдёт? Добавлено @ 21:55 Да и поповоду GDI+ утебя есть рабочая библиотека так как которя уменя была установилась но не компилилась вылетали ошибки в WinXP. Добавлено @ 22:06 Сейчас попробовал вобще Deiphi виснет и не компилит |
| Автор: Alexeis 14.3.2007, 22:56 |
| ivan219, да можно и на GDI, просто используется свой метод рисования линий. Попробуй этот модуль. |
| Автор: ivan219 15.3.2007, 01:04 |
| Alexeis, спасибо неплохой модуль. |
| Автор: Bitter 15.3.2007, 01:16 |
| ivan219, если ты хочешь сгладить линию вручную, т.е. программно, тогда так: Существует 3 метода сглаживния: предфильтрация, сверхопрос и постфильтрация. Предфильтрация. В этой технологии цвет пикселя вычисляется на основе покрытия объектом (в твоем случае линией). Для этого есть эффективный алгоритм, точнее его модификация: модифицированный алгоритм Брезенхема, разработанный Питтвэем. Про него можно почитать тут: http://canon.osu.cctpu.edu.ru/diplom/algor/2.10.asp?ThemeID=2 Но для таких фигур как линия, этот алгоритм дороговат. Сверхопрос. Опрос - дискретизация объекта. Обычно опрос равен разрешению экрана. Метод сверхопроса заключается в проведении опроса линии с большей частотой, в этом случае каждый пиксел формируется как среднее нескольких опросов. Другими словами, после того, как ты нарисовал линию, прийдется пройтись по ней еще раз и расчитать значения соседних пикселов, как среднее окружающих их пикселов. Пример программ прикрепил. Постфильтрация. Для повышения качества используется постфильтрация. Тоже самое, что сверх опрос, но используется маска весов. Например, такая: 1 2 1 2 1 2 1 2 1 или такая 0.5 1 0.5 1 1 1 0.5 1 0.5 в общем любая пример тоже прикрепил |
| Автор: ivan219 15.3.2007, 19:05 |
| Bitter, спасибо. |