![]() |
|
|
![]()
|
|
| FataList |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Добрый день!
Нужно закрасить полигон, который задается координатами вершин, т.е. по точкам. В свою очередь эти точки (вершины), которые соединяются прямыми. Как закрасить получившийся полигон? |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Создаешь регион на основе этих точек, а потом все просто-CDC::FillRgn
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Есть функция CDC::Polygon. Ставишь в контекст кисть и перо (для границы) и рисуешь.
-------------------- ... |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Ну да.. Вот из МСДН. Красный ромб
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| FataList |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Спасибо, все работает, все закрашивается
Я реализовал это так
Замучился пока разобрался в этом. Продолжение эпопеи. Теперь есть полигон, который разбивается на треугольники - триангуляция, но разбивается выпуклый полигон(треугольник). Это не работает, когда заданная "территория" является не выпуклой (например, вид штанов). Задача состоит в том, чтобы правильно разбить на треугольники не выпуклый полигон и эти треугольники (координаты вершин) сохранить в массиве со структурой.
Один из вариантов реализаци: Берем любую вершину, пусть будет A, и две смежные ей: B и C (треугольник ABC). Выпуклым треугольником является треугольник, у которого угол BAC будет < 180 град. Делается это как-то через умножение одной смежной стороны на другою (AB * BC). Если условия выполняются, то отсекаем этот треугольник и записываем его координаты вершин в массив. Это не самый лучший метод, но должен работать. Вопрос в том, как его экономично реализовать, т.к. меня постоянно тенят на усложнение кода. Приходится потом упрощать. Это лечится? |
||||
|
|||||
| nikakoi |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.5.2006 Репутация: нет Всего: нет |
Ну лечится то все
Давай написанный код.. Я его упрощу по максимуму.. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Модератор: Пожалуйста, один топик - один вопрос.
-------------------- ... |
|||
|
||||
| FataList |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Earnest, а как сменить , не мененяя самой темы? Или удалить все и создать заново?
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Новую тему создай, и постарайся, чтобы название темы отражало ее суть.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |