![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 2 Всего: 36 |
Допустим, я нарисовал на форме три пересекающиеся линии (через метод DrawLine()) как показано на прилагаемом рисунке.
Есть ли какой-нибудь красивый способ заполнить образованный треугольник заданным цветом? Что-то типа заливки? Учитывая, что я не знаю координат пересечения этих линий? Нет, конечно, можно вычислять точки пересечения, но хотелось бы обойтись без этого для экономии ресурсов. Т.е., например, я кликаю в треугольник, и он закрашивается зеленым. Присоединённый файл ( Кол-во скачиваний: 17 )
triangle.jpg 3,72 Kb-------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Думаю так: нужно взять обнъект GraphicsPath и добавить туда твои линии через AddLine, затем вызвать Graphics.FillPath.
-------------------- |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 2 Всего: 36 |
Хмм..
ОК. Уточняю задачку. Есть НЕСКОЛЬКО таких треугольников. Я должен кликнуть мышью по треугольнику, и он закрашивается неким цветом. Если делать через GraphicsPath, то я должен исходя из координат клика вычислять какие прямые образуют выбранный треугольник. А это, имхо, уже не тривиально.. Присоединённый файл ( Кол-во скачиваний: 9 )
triangle.jpg 7,58 Kb-------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Kurt
Ну, старик, мне кажется ты уже вообще халявы хочешь -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 2 Всего: 36 |
Coocky
Не, ну вдруг есть стандартный и простой способ. Авось программеры .NET Framework и тут поработали? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Kurt
Я б сделал свой класс, с координатами площади, у функцией, для расчета координат. Все, один раз прогеммороится, и используй хоть 1000 штук через коллекции. Мне кажется нет способа, насколько я изучил GraphicsPath.... -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: нет Всего: 172 |
Ну не знаю, зачем огород городить. Находи точку где кликнули и просматривай поинты снизу наверх или справа налево, смотри цвет... Самый общий алгоритм, довольно простой.
Пока найдешь что-то типа того что ищешь, потратишь время, а потом понадобится заливать не только пространство между прямыми, но вообще произвольные области, придется заново делать. Добавлено @ 03:02
Это уже точно геморрой... -------------------- |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Domestic Cat
Это почему гемморой?
М-да...А как получить точку , которая линии предналежит? И как это-просматривай?Проходит в двух мерном массиве все точки? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Общее пространство минус области треугольников Добавлено @ 03:28 А вообще интересная (для меня) задачка. Надо у ребят спросить... Это сообщение отредактировал(а) Coocky - 10.6.2005, 03:20 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 1 Всего: 48 |
Если это нужно только для отображения на экране, то можно через старый добрый ExtFloodFill из простого GDI ;)
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |