Сглаживание

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сглаживание

Сообщение |kerish| » 05.11.2004 (Пт) 16:32

Подскажите есть ли хоть какая-нибудь возможность быстро сгладить толстую линию нарис. по диагонали.
Прилагаю рисунок.
Надо, чтобы она была гладкой.
Есть хоть какие-нибудь пути решения проблемы?

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 05.11.2004 (Пт) 16:42

Первое, что пришло в голову: для каждого пикселя анализируешь расстояние до ближайшего собрата, закрашенного черным (не оттенком серого, а именно черным) по горизонтали и по вертикали. Потом, ежели Abs(dy)<=Abs(k*dx), где k - тангенс угла наклона линии, закрашиваем пиксель черным - ежели нет - белым.
Листинги не горят!

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 06.11.2004 (Сб) 0:31

Спасибо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.11.2004 (Сб) 12:29

Вариант проще (и правильнее).
Нужную картинку увеличиваешь в два раза, проводишь нужную линию с толщиной вдвое больше требуемой, результат уменьшаешь в два раза (с применением антиальясинга).
Суть антиальясинга 2x2 (упрощенно) такова. Есть четыре пиксела, расположенные квадратом. Вычисляешь "средний" цвет этих пикселов и из этих четырех пикселов рисуешь на новой картинке один, со средним цветом.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron