Графика в MFC
От: Andir Россия
Дата: 26.10.01 01:32
Оценка:
Народ поможите чем можете ...
Ищу алгоритм быстрой закраски замкнутой области типа замкнутого полисплайна безье с самопересекающимися частями ... (алгоритм флэша или директора очень бы помог)

icq — 130629560 (если что можно на аську)
Re: Графика в MFC
От: Andir Россия
Дата: 26.10.01 02:39
Оценка:
Косяк в том, что затравку для области ограниченной сплайном не так то просто найти, особенно если он самопересекающийся ...
Если просто заливать Прямоугольник, в которой находится сплайн, со сканированием области то туда запросто может попасть другая фигура, вполне может быть что уже залитая ...

Решения я придумать так и не смог пока ...
Re: Графика в MFC
От: Alexander Shargin Россия RSDN.ru
Дата: 26.10.01 14:56
Оценка:
Здравствуйте Andir, Вы писали:

A>Народ поможите чем можете ...

A>Ищу алгоритм быстрой закраски замкнутой области типа замкнутого полисплайна безье с самопересекающимися частями ... (алгоритм флэша или директора очень бы помог)

Я думаю, что пути тебе должны помочь.

Идея такая:
1. Делаешь BeginPath в своём контексте устройства.
2. Рисуешь кривую.
3. Делаешь EndPath, заканчивая тем самым рисование фигуры.
4. Вызываешь FillPath, чтобы залить полученную фигуру. Есть ещё StrokePath (нарисовать контур) и StrokeAndFillPath (и то и другое сразу). Заливка осуществляется текущей кистью.

Точно помню, что парни из Стингрея рисовали эллипсы под произвольным углом как раз через кривые Бизье и пути. Расскажешь потом, получилось или нет. :)
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re: Графика в MFC
От: Andir Россия
Дата: 28.10.01 02:54
Оценка:
Спасибо за ответ, но увы BeginPath и EndPath не работают с SetPixel, а сплайны я рисую с помощью него, если знаете решение и этой проблемы, буду очень благодарен !
Re[2]: Графика в MFC
От: Alexander Shargin Россия RSDN.ru
Дата: 28.10.01 04:44
Оценка:
Здравствуйте Andir, Вы писали:

A>Спасибо за ответ, но увы BeginPath и EndPath не работают с SetPixel, а сплайны я рисую с помощью него, если знаете решение и этой проблемы, буду очень благодарен !


Боюсь, что при таком низкоуровневом подходе тебе и заливать придётся на низком уровне. (удивлённо) А зачем рисовать сплайны через SetPixel, когда можно к примеру через LineTo или PolyLine?

PS. отвечай прямо на это письмо, а не на первое в треде, тогда я получу уведомление о твоём ответе.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re[3]: Графика в MFC
От: Andir Россия
Дата: 28.10.01 05:01
Оценка:
Здравствуйте Alexander Shargin, Вы писали:

AS>Боюсь, что при таком низкоуровневом подходе тебе и заливать придётся на низком уровне. (удивлённо) А зачем рисовать сплайны через SetPixel, когда можно к примеру через LineTo или PolyLine?


А я кстати и понятия об этом не имею, MFC юзаю недавно...
Тормозить такое не будет ?
Привык уже ко всяким SetPixel (putpixel).
А вот насчёт низкоуровневой заливки я бы и хотел узнать, дело всё в том что если сплайн самопересекается то некоторые его части заливаются неправильно. Даже когда используешь что-то типа PolyBezierTo(). А Флэш использует какой-то другой алгоритм, и если инвертить его способ то по-моему получиться вполне приемлемая заливка самопересекающегося сплайна.

Попробовал только что LineTo() Эффект тот же что и от PolyBezierTo() ;-(

Уже даже не знаю что сделать. Теряюсь в просторах Инета.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.