LINUX.ORG.RU

Пишу графический редактор. Как лучше запрограммировать инструменты.

 ,


0

3

Привет. Пишу простой графический редактор типа Paint.Net на Qt C++. Подскажите как лучше реализовать инструменты. На данный момент они у меня реализованы по-быстрому,прямо в коде виджета-холста, через enum и блоки switch. Теперь вот хочу добавить к инструментам функционал (кисти,трансформации, копирование в буфер обмена) и переделать это на объектах. Может быть что-нибудь подскажете...


Напиши лучше mspaint, прям один в один, всё равно твой уникальный редактор пропадет среди тысяч других. За за mspaint тебе благодарная виндусячья публика отольёт чё-нибудь в граните. В историю войдешь, на полном серьёзе.

ilovewindows ★★★★★
()

То, что ты хочешь, называется «полиморфизм».

E ★★★
()
Ответ на: комментарий от ilovewindows

всё равно твой уникальный редактор пропадет среди тысяч других

Да ладно. Может, просто учится человек.

anonymous
()
Ответ на: комментарий от ilovewindows

уникальный редактор пропадет среди тысяч других.

Где эти тысячи? Время от времени на лоре ищут простой граф.редактор типа паинт.нет И кроме пинты и mtpaint больше ничего не находится.

Это лор...

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Есть же в KDE, назывется Kolour Paint.

Правда после того, как в KDE пришла школота (со времён KDE 4 то бишь), он никак не развивается.

EXL ★★★★★
()

По идее, каждый инструмент должен быть классом, наследующим общий интерфейс. Виджет работает с текущим инструментом и передает ему события мыши, клавиатуры, вызывает draw(). Инструмент может генерить собственные события, показывать меню и т.д. Мне видится как-то так.

anonymous
()
Ответ на: комментарий от EXL

он никак не развивается

А что там развивать?

Он в кде-3 был вполне отличной заменой паинта винды-ХР и используется в школах.

ЗЫ: А вообще, конечно, в линуксе чего-то между гимпом и колорпаинт нету...

Есть в линуксе mtpaint, всем хорош, да только интерфейс вырвиглазный...

А этот паинт-нет на моне...

Так что если pup_kin не бросит затею на полпути и его редактор не пополнить кучу недоделок, не будет вырвиглазным и глючным, да еще будет собираться и на Qt4... Будет востребовано...

anonymous
()

Прошу тебя, умоляю, не пиши всякий треш, который окажется никому не нужный еще одни недоделанным говноредактором, напиши аналог или просто клон Sketches Pro.

slon
()
Ответ на: комментарий от slon

Sketches

Суть в том, что достаточно только дюжины инструментов, с простой но четкой работой, не нужно всякий никому не нужный понос типа безье, спреев или кисточек в виде жопы поняшки, напиши только то, что используется в реальной жизни, тупо повтори работу инструментов Sketches.

Ты напишешь самую необходимую программу для творчества на линуксе, т.к. Krita пошла не туда, дико отяжелела, стала неюзабельной из-за своей тяжелости и сложности, про GIMP нечего говорить, MyPaint не пробовал.

slon
()

переделать это на объектах

Почему не сделать инструменты внешними скриптами? На каком-нибудь lua например. Кладешь в каталог инструментов скрипт инструмента, он добавляется на панель, показывает свои настройки и делает что-нибудь полезное.

Deleted
()

Я писал такой, когда учился в качестве большой лабораторной работы на 1 семестр (даже не курсач), всё просто - реализуешь поддержку слоев и объектов, один из которых в твоём случае холст (редактор векторный или растровый?) (ну или выделением по рамке объект делаешь/выбираешь несколько объектов), затем даешь к выделенным объектам матричные преобразования - вуаля, у тебя есть гауссово размытие, инструмент для исправления перспективы, всякие искажения и прочее. Для кистей у тебя кисть должна быть объектом и ты должен программно рисовать пиксели в нужных местах сетки (или выбиарть точки и векторизовать изображение, такого я не делал, поэтому сходу не скажу, как, а изобретать с нуля/гуглить нужные алгоритмы надо время и это труд, который ты мне не оплачиваешь), тут с алгоритмами я тебе не помогу.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Шумы + матричные преобразования + велосипеды + немного физики для определения радиуса размытия/смешения цветов + чуток матана и смекалки.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Ну можно без клякс (акварель) и аэрографа, просто четкие и точные карандаши, рапидографы, короче то, чем пользуются в реальной жизни иллюстраторы.

slon
()
Ответ на: комментарий от RazrFalcon

Живее всех живых.

К тому же написать программу, которая будет собираться как на Qt4, так и на Qt5, достаточно просто.

hobbit ★★★★★
()

Вот писал бы ты музыкальный плейер, тебе бы сразу сказали — ненужно, а тут вон, оказывается, даже дефицит :-).

Virtuos86 ★★★★★
()
Ответ на: комментарий от hobbit

Живее всех живых.

Авторы его забросили.

достаточно просто

Только если игнорировать все новые фичи.

RazrFalcon ★★★★★
()
Ответ на: комментарий от slon

MyPaint не пробовал.

А зря, подходит лучше всего.

olibjerd ★★★★★
()

Пишу графический редактор. Как лучше запрограммировать инструменты.

Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы...

AUX ★★★
()
Ответ на: комментарий от anonymous

В 10 венде прекрасный пейнт, буквально эталон пейнтов с которым ни один пейнт даже близко не стоит.

anonymous
()
Ответ на: комментарий от peregrine

А ещё бы, чтобы все накладываемые преобразования были недеструктивными (сохраняются все оригинальные данные и параметры, а когда нужно рендерится результат). В само ядро с самого начала заложить этот функционал.

gag ★★★★★
()
Ответ на: комментарий от gag

Там значит изначально что-то сильно оптимизировали/упростили.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

В 10 венде прекрасный пейнт, буквально эталон пейнтов с которым ни один пейнт даже близко не стоит.

Враки!

Оно не эталон

Юзвери тащат старый экзешник из их любимой икспишечки так как им этот новый не нравится и для них он очень сложен :)

anonymous
()
Ответ на: комментарий от RazrFalcon

Для новый компьютеров проблем нет, а для старых - есть.

Кроме того, на старых компьютерах и дистрибутивы не всегда свежие - там вообще нет Qt5 ...

anonymous
()
Ответ на: комментарий от anonymous

Да-да, а на еще более старых и Qt4 нет, давайте все писать на Qt3!

CrossFire ★★★★★
()
Ответ на: комментарий от anonymous

Почему меня должны заботить некрофилы.

Ну и о каких проблемах идёт речь? XP-шечка не поддерживается?

RazrFalcon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.