Официальный сайт студ.городка НГТУ
Программирование и БД » Хочу заменить GDI.......чем-нибудь более существенным. 

#1  28.12.07 23:11

Хочу заменить GDI.......чем-нибудь более существенным.

Я делаю бакалаврскую работу. Программка получается очень хорошая (ну в моем случае).
Самый главный модуль там как раз – это рисование Бизнес-процессов.
Программирую я на C# в VS2005. Вот эти БП рисуются у меня, все хорошо. Когда я начинал, я был очень этим доволен. Но сейчас, когда программа достигает больших размеров и она постоянно дополняется новым функционалом, я считаю что она на самом деле не того качества, какого я ожидал бы. Дело в том, что я рисую эти БП на канве, использую GDI.
Получается не очень красиво, и очень медленно, когда на холсте размещено множество блоков, связей и т.д. изза того что все это перерисовывается.
Изменил размер – перерисовал, прошло время…. Открыл другую прогу, вернулся в свою – опять все перерисовалось, опять это время.

СКАЖИТЕ пожалуйста, я могу рисовать все это на каком-нибудь движке типа OpenGL, только в 2D))) естественно на C#.
Если да то дайте если есть какую-нибудь ссылочку, чтобы почитать про то как это реализовать.
Заранее благодарен.

Offline

#2  29.12.07 00:35

Re: Хочу заменить GDI.......чем-нибудь более существенным.

DirectDraw. Думаю в C# на ура пойдет, хотя сам пробовал DirectDraw только на С++.

Offline

#3  29.12.07 08:49

Re: Хочу заменить GDI.......чем-нибудь более существенным.

попробуй бесплатный векторный движек, которые написали мазиловцы (если не ошибаюсь) - Cairo...

Offline

#4  29.12.07 20:17

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Offline

#5  29.12.07 21:12

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Спасибо, я попробу. найти документацию

Offline

#6  29.12.07 23:12

Re: Хочу заменить GDI.......чем-нибудь более существенным.

XNA я не в силах скачать....((
про DirectDraw пока чтото не смог я найти чтобы на С#.

Offline

#7  30.12.07 15:01

$up
Профиль

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Может у тебя просто проблема в архитектуре программы.
У тебя отрисовка кэшируется?
Так тебе никакие библиотеки не помогут...

Offline

#8  04.01.08 23:47

ZiF
Профиль

Re: Хочу заменить GDI.......чем-нибудь более существенным.

а почему бы не посмотреть в сторону managed c++, если нужен прирост в производительности ? там и с opengl прекрасно работается (хотя и для шарпа тоже есть обертки opengl-a), склепай в нем контрол для своих нужд, и будет тебе счастье.

Offline

#9  05.01.08 00:44

Re: Хочу заменить GDI.......чем-нибудь более существенным.

$up написал(а):

Может у тебя просто проблема в архитектуре программы.
У тебя отрисовка кэшируется?
Так тебе никакие библиотеки не помогут...

самое верное замечание на мой взгляд

Offline

#10  13.01.08 13:34

Re: Хочу заменить GDI.......чем-нибудь более существенным.

RusRusRus, напиши на чем остановился

Offline

#11  23.01.08 07:39

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Да все на томже. Сессия была)))
У тебя отрисовка кэшируется? извините, это как? Я с GDI начал недавно работать, толком не разбирался, рисует и ладно, подумал я.
Прорисовка проходит так:
В метод PAINT  я пишу обработчик, рисования например прямоугольника, и все.
Ну и при каждом наложении объекта или др. формы, оно затирается и все перерисовывается. Ну как работает метод PAINT думаю все знают.


Вот про кэшируется можно поподробнее пожалуйста?))) что это и как это реализовать?

Offline

#12  23.01.08 07:44

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Пример рисования в гди моего приложения)) на всякий случай:

Graphics g = this.CreateGraphics();
            g.Clear(_wc);
            Pen pen = new Pen(_bc);
            Point p1 = new Point(2, 2);
            Point p2 = new Point(this.Width, this.Height);
            g.DrawRectangle(pen, p1.X, p1.Y, p2.X, p2.Y);

Offline

#13  27.01.08 18:47

Re: Хочу заменить GDI.......чем-нибудь более существенным.

vf читай ман по кешированию отрисовки графики на автф это читали когда расказывали про рисование, в мсдн тоже есть.

Offline

#14  03.02.08 09:35

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Хорошо, я посмотрю

Offline

#15  18.02.08 07:34

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Я поискал, поспрашивал, как кэшировать данные? Кто нибудь может объяснить, что и как это делается?
Может примеры есть у кого?)

Offline

#16  20.02.08 18:15

Re: Хочу заменить GDI.......чем-нибудь более существенным.

посмотри леции которые читают по джаве на автфе группам ап или ам, там есть прим еры и расказывается зачем и поченму.

Offline

#17  20.02.08 22:56

Re: Хочу заменить GDI.......чем-нибудь более существенным.

помимо смены движка рисования произведи рефакторинг кода. всё что не нравится - перепиши! прям стирай и пиши новый код. не стесняйся.
рефактори чаще. запомни "правило": если не нравится код - перепиши его с нуля.

Offline

#18  20.02.08 23:09

Re: Хочу заменить GDI.......чем-нибудь более существенным.

ыыы
СЫР почитай правила программиста, не надо уулчшать все, пройдись профайлером и перепиши проседающие куски кода.
Удовлетворительно работающий код всегда лучше переписанного.

Offline

#19  20.02.08 23:22

Re: Хочу заменить GDI.......чем-нибудь более существенным.

otaku, засунь себе эти правила куда-нибудь и ознакомься с методологией "экстремальное программирование".

Исправлено CbIP (20.02.08 23:23)

Offline

#20  20.02.08 23:57

Re: Хочу заменить GDI.......чем-нибудь более существенным.

otaku написал(а):

Удовлетворительно работающий код

код должен быть "отличным", а не на 3-ечку... )

Offline

#21  21.02.08 00:05

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Offline

#22  21.02.08 22:54

Re: Хочу заменить GDI.......чем-нибудь более существенным.

Я то переписал))) (чем и занимался ти 2 месяца) добавил кучу новых возможностей, и осталось место для еще боле новых)))
рисуется все канечно побыстрее, т.к. там некоторые лишние действия убрал или вообще новые добавил, но все попрежнему перерисовывается(( раздражает(((

Offline

#23  21.02.08 22:57

Re: Хочу заменить GDI.......чем-нибудь более существенным.

drug_detei , спасибо за ссылочку, думаю из нее я чтонить полезное вытащу для себя))
насчет лекций, я поспрашиваю))

уже 2 года жалею что я не на АБ учусь)))

Offline

#24  24.02.08 12:38

Re: Хочу заменить GDI.......чем-нибудь более существенным.

CbIP написал(а):

otaku, засунь себе эти правила куда-нибудь и ознакомься с методологией "экстремальное программирование".

Сыр учись программировать, не академически, а промышленно.
Не осознал причем ут экстремальное рпограммирование, при экстремальном прогарммирование, вообще нет времени переписывать код, ты сразу пишешь хороший.
А вот статью почитай мож станешь взрослее
http://www.linux.org.ru/view-message.jsp?msgid=2525031&lastmod=1203832051051
Узнаешь что такое профайлер

Offline

#25  24.02.08 15:48

Re: Хочу заменить GDI.......чем-нибудь более существенным.

otaku написал(а):

Не осознал причем ут экстремальное рпограммирование, при экстремальном прогарммирование, вообще нет времени переписывать код, ты сразу пишешь хороший.

да уж...
ознакомься повнимательней с разделом "рефакторинг" :)


что ты мне профайлером всё тычешь? причем тут он и мой совет автору топика рефакторить код? :)

Offline

#26  24.02.08 20:34

Re: Хочу заменить GDI.......чем-нибудь более существенным.

смысл переписывать весь код?
если загвоздка в его малом куске?
Ну расскажи тогда что же такое экстремальное программирование?

Offline

#27  24.02.08 22:09

Re: Хочу заменить GDI.......чем-нибудь более существенным.

otaku написал(а):

смысл переписывать весь код?

я говорил о тех местах, которые нестабильны, имеют дефекты или выполняются неоптимально.

зы. на оффтоп перешли... закрыли...

Исправлено CbIP (24.02.08 22:09)

Offline

#28  29.02.08 13:56

Re: Хочу заменить GDI.......чем-нибудь более существенным.

))))))) можно тему новую открыть))) по экстремальное прогр-е)))))

Offline

#29  02.03.08 13:08

Re: Хочу заменить GDI.......чем-нибудь более существенным.

drug_detei, я разорбрался с программкой, большое спасибо за последнюю ссылочку, очень помогло. Все стало очень быстро работать, почти незаметно. Еще раз спасибо!!! Прога стала жрать на 25 метров больше, но зато косяк мерцания исчез))))))))))

Offline

Программирование и БД » Хочу заменить GDI.......чем-нибудь более существенным. 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.023 сек.
Выполнено 11 запросов.