Страница: 1 |
Вопрос: Метод .Line... - толщина? | Добавлено: 04.10.06 22:21 |
Автор вопроса: ![]() |
Привет всем!
Снова я... и снова Line :) Как можно для линии приделать толщину, чтобы попроще было? Я пытался несколько линий параллельно сделать рядышком, как будто - это одна толстая. Но получилось громоздкое решение, даже басик тормозит. Может, кто-нибудь пытался когда-нибудь приделать толщину .Line? Или какие-нибудь идеи получше будут? Заранее благодарен! |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #1 | Добавлено: 04.10.06 22:45 |
Сори, совсем забыл про контрол-линию за работой ![]() Попробуй свойство DrawWidth увеличить, вроде оно как раз за ширину рисуемых деталей отвечает. |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 04.10.06 23:01 |
Оп-ля... Снимаю шляпу и низко кланяюсь! Работает!
Стыдно, я о DrawWidth узнал однажды только потому, что объявил под этим именем переменную. ![]() Спасибо, Brand! Кстати, если хочешь - договаривайся с админ., я дам тебе 100 рейтинга |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #3 | Добавлено: 04.10.06 23:27 |
Кстати, если хочешь - договаривайся с админ., я дам тебе 100 рейтинга
бгагагаа... падстолом ps и за меня там договорись ))))) можно нарисовать пару или болье линий, сместив каждую на x(1,2)=x(1,2)-1 и с y аналогично... |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 05.10.06 04:59 |
можно нарисовать пару или болье линий, сместив каждую на x(1,2)=x(1,2)-1 и с y аналогично...
Гениально, особенно если линии идут по диагонали ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 649109 Вопросов: 31 Ответов: 391 |
Профиль | Цитата | #5 | Добавлено: 05.10.06 06:57 |
Если линии вертикальные и горизонтальные можно еще прямоугольниками закрашенными рисовать |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 05.10.06 20:25 |
можно нарисовать пару или болье линий, сместив каждую на x(1,2)=x(1,2)-1 и с y аналогично... На самом деле я так и пытался когда-то и столкнулся с именно этой проблемойГениально, особенно если линии идут по диагонали Пришлось выпабатывать алгоритм параллельности прямых, да такой громоздкий что-то он получился... (если кто занет, как сделать как-нибудь просто, скажите)
![]() Но это тоже не всё - если изображение масштабировать, то - нужно количество этих линий менять.. вобщем так неудобно, ах!.. |
Номер ответа: 7 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 05.10.06 20:27 |
Эх... ![]() Совет Brand'а оказался тоже не панацеей. Он ведь для всех линий в контейнере меняет толщину, а нужно, чтобы для каждой отдельно можно было этим управлять |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #8 | Добавлено: 05.10.06 20:53 |
ну... а в чем пробелма?
Перед рисованием каждой линии ставь свойство DrawWidth. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #9 | Добавлено: 05.10.06 20:53 |
ну... а в чем пробелма?
Перед рисованием каждой линии ставь свойство DrawWidth. |
Номер ответа: 10 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 05.10.06 22:43 |
Да вобщем-то идея хорошая... Но у меня тут как говорится свои замуты: я поставил линию на timer вместо autoredraw (чтобы каждая нарисованная линия - имела свой таймер и через несколько долей секунды перерисовывалась.). И таким образом у меня получается, что каждая линия принимет ту толщину drawwidth, которую я ставлю ей в этот момент. |
Номер ответа: 11 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 05.10.06 22:46 |
Кстати, может кто-нибудь подскажет идею, как можно по другому заменить autoredraw? (не таймером) |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #12 | Добавлено: 05.10.06 23:42 |
Кстати, может кто-нибудь подскажет идею, как можно по другому заменить autoredraw? (не таймером)
Смысл в том, что нужно рисовать не на контексте окна, а на контексте картинки, а саму картинку вставить на нужные тебе контрол. Получается, ты рисуешь на картинке которая находится в памяти. Я не уверен что это будет просто реализовать средствами GDI, но могу рассказать как это делается в .NET. |
Номер ответа: 13 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 05.10.06 23:59 |
Я не уверен что это будет просто реализовать средствами GDI, но могу рассказать как это делается в .NET. Я всё это и замутил только потому что .Net не поддеоживает элемент Line. Решил нго сделать искусственно так, чтобы этот как бы алгоритм (или идею) можно было воплотить в .Net.
Так что буду признателен |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #14 | Добавлено: 06.10.06 02:13 |
Создаем Bitmap и связываем его с нашим контролом:
Dim Bmp As New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)
Далее связываем его с формой: Me.BackgroundImage = Bmp
После этого можем создать Graphics ассоциированый с нашей картинкой и рисовать на нем что угодно: Dim Gr As Graphics = Graphics.FromImage(Bmp)
Gr.DrawLine(Drawing.Pens.AliceBlue, 0, 0, 20, 30) Вот в принципе и все. |
Номер ответа: 15 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 06.10.06 19:02 |
Спасибо, Brand! Для VBNet - классно, впрочем для vb6 я тоже сделал.
Благодарю всех за помощь! |
Страница: 1 |
|