Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заливка в GDI+?.. есть ли возможность?.. 
:(
    Опции темы
Kurt
Дата 10.6.2005, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Допустим, я нарисовал на форме три пересекающиеся линии (через метод DrawLine()) как показано на прилагаемом рисунке.
Есть ли какой-нибудь красивый способ заполнить образованный треугольник заданным цветом? Что-то типа заливки?
Учитывая, что я не знаю координат пересечения этих линий?
Нет, конечно, можно вычислять точки пересечения, но хотелось бы обойтись без этого для экономии ресурсов.
Т.е., например, я кликаю в треугольник, и он закрашивается зеленым.

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  triangle.jpg 3,72 Kb


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Domestic Cat
Дата 10.6.2005, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: нет
Всего: 172



Думаю так: нужно взять обнъект GraphicsPath и добавить туда твои линии через AddLine, затем вызвать Graphics.FillPath.


--------------------

PM   Вверх
Kurt
Дата 10.6.2005, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Хмм..
ОК. Уточняю задачку. Есть НЕСКОЛЬКО таких треугольников.
Я должен кликнуть мышью по треугольнику, и он закрашивается неким цветом.
Если делать через GraphicsPath, то я должен исходя из координат клика вычислять какие прямые образуют выбранный треугольник.
А это, имхо, уже не тривиально..

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  triangle.jpg 7,58 Kb


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Coocky
Дата 10.6.2005, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Kurt
Ну, старик, мне кажется ты уже вообще халявы хочешь smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Kurt
Дата 10.6.2005, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Coocky
Не, ну вдруг есть стандартный и простой способ. Авось программеры .NET Framework и тут поработали? smile


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Coocky
Дата 10.6.2005, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Kurt
Я б сделал свой класс, с координатами площади, у функцией, для расчета координат.
Все, один раз прогеммороится, и используй хоть 1000 штук через коллекции.
Мне кажется нет способа, насколько я изучил GraphicsPath.... smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Domestic Cat
Дата 10.6.2005, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: нет
Всего: 172



Ну не знаю, зачем огород городить. Находи точку где кликнули и просматривай поинты снизу наверх или справа налево, смотри цвет... Самый общий алгоритм, довольно простой.
Пока найдешь что-то типа того что ищешь, потратишь время, а потом понадобится заливать не только пространство между прямыми, но вообще произвольные области, придется заново делать.
Добавлено @ 03:02
Цитата(Coocky @ 9.6.2005, 16:47)
Я б сделал свой класс, с координатами площади, у функцией, для расчета координат.
Все, один раз прогеммороится, и используй хоть 1000 штук через коллекции.

Это уже точно геморрой...


--------------------

PM   Вверх
Coocky
Дата 10.6.2005, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Domestic Cat
Это почему гемморой?
Цитата
Находи точку где кликнули и просматривай поинты снизу наверх или справа налево, смотри цвет..

М-да...А как получить точку , которая линии предналежит? И как это-просматривай?Проходит в двух мерном массиве все точки?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 10.6.2005, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Цитата
Пока найдешь что-то типа того что ищешь, потратишь время, а потом понадобится заливать не только пространство между прямыми,

Общее пространство минус области треугольников
Добавлено @ 03:28
А вообще интересная (для меня) задачка. Надо у ребят спросить...

Это сообщение отредактировал(а) Coocky - 10.6.2005, 03:20


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
stab
Дата 10.6.2005, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 1
Всего: 48



Если это нужно только для отображения на экране, то можно через старый добрый ExtFloodFill из простого GDI ;)


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.1055 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.