|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2013, 20:35 | #1 |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
Рисование "прямых" линий. Делфи
Вечер добрый.
Мой научный руководитель хочет программу для показа колебаний. Собственно мной была она написана. Возникла проблема, когда рисуется косая линия, парабола, то рисуется она не так как например на доске мелом - ровно, а штрихами. Уже и объяснял, что от меня это не зависит, рассказывал про матрицу и размер пикселей, и наглядно показывал на листке в клеточку, ни в какую. Подавай ему ровную линию и всё тут. Говорит, что ему делали проги где линия идеально ровна шла.... и что бы я ему не загонял и не уклонялся от работы дурдом. Собственно возник вопрос, а может и правда как то можно нарисовать, к примеру параболу так, что бы отрисовывалась не штришками а плавной линией? Буду рад хоть какой информации. |
06.05.2013, 20:51 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Как говорится, совершенству нет предела.
1. Собственно, вместо параболы рисуется ломаная. И если эта ломаная состоит из достаточно крупнвх "штрихов", это будет заметно на глаз. Штрихи следует делать поменьше. Возможно, адаптивной длины, чтобы между двумя соседними угол не превосходил некоторой заданной величины. Ну и т.д. 2. Если проблема не в том, что на линии видны штрихи, а в том, что на ней видны пискели - задача несколько усложняется. Для борьбы с таким эффектом применяется антиалиасинг. Грубо говоря, это выглядит так (в случае черной линии на белом фоне): рисуем линию хотя бы чуть шире, чем 1 пиксель. Вычисляем точно ее границы относительно границ пикселя. Если пиксель целиком внутри линии - рисуем черным. Если граница линии пересекает площадь пикселя, рисуем его оттенком серого, степень черноты при этом равна отношению площади черной части пикселя к его полной площади. |
06.05.2013, 20:59 | #3 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
Сравнение парабол с антиалисингом и без:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.05.2013, 21:15 | #4 |
Форумчанин
Регистрация: 13.07.2012
Сообщений: 357
|
Ух ты.
Спасибо, будем-с разбираться. |
29.08.2013, 22:44 | #5 |
Новичок
Джуниор
Регистрация: 29.08.2013
Сообщений: 1
|
|
29.08.2013, 23:17 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
МНС, на форме PaintBox (не забудьте скачать gdi+):
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |