Page 1 of 2

Графический редактор

Posted: Sat Apr 15, 2006 9:04 pm
by Maxxxx32
Пишу графический редактор. Буды очень благодарен любой помощи.

http://maxxxx32.narod.ru/mpaint.7z

Posted: Sat Apr 15, 2006 9:23 pm
by andrew_programmer
Я тоже пишу графический редактор растровой графики.
http://www.menuetosgame.narod.ru/games/animage.png

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

Posted: Sat Apr 15, 2006 9:34 pm
by Maxxxx32
До векторной графики я еще не дорос, поэтому хочу начать с растровой графики.

Posted: Sat Apr 15, 2006 9:35 pm
by andrew_programmer
Сейчас смотрел мсходники.
Рекомендую выделять память под картинку не статически,а динамически при помощи 64 функции.А также сделать подстройку рабочей области под размер окна программы.

Posted: Sat Apr 15, 2006 9:37 pm
by andrew_programmer
Правильно -нужно начинать с растровой.

Posted: Sat Apr 15, 2006 9:37 pm
by Maxxxx32
Сначала я хочу написать основные алгоритмы: рисование линий, прямоугольников, заливка.

Posted: Sat Apr 15, 2006 9:41 pm
by Maxxxx32
Еще есть маленькая проблемка: было задумано так, что при первом нажатии на кнопку "colors" появляется окно, где можно выбрыть цвет, а при втором нажатии это окно закрывается. PID, который я получаю при запуске нового потока и номер процесса это одно и то же?

Posted: Sat Apr 15, 2006 11:23 pm
by Maxxxx32
Эти цветные кнопки я собираюсь использовать в своей программе. Можно ли это сделать проще ? У меня получился очень большой код.Image
http://maxxxx32.narod.ru/colors.7z

Posted: Sun Apr 16, 2006 11:12 am
by andrew_programmer
Конечно можно.

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

2)Реализовать действие пункта 1) ввиде цикла по X и Y(расстановка кнопок по горизонтали с переходом,при достижения края,на новую строки).


Вот так я и сделал в своём редакторе.Это заняло примерно 100 байт кода (без учета таблицы цветов).

Posted: Mon Apr 17, 2006 11:32 am
by Maxxxx32
Сделал все ввиде цикла. Панель рисуется вызовом одной подпрограммы. Подпрограмме в регистрах надо оставить указатель на структуру в памяти и номер самой первой кнопки. Структура получилась довольно большая: в ней надо указать положение панели, цвет фона, размеры кнопок, количество кнопок, расстояние между кнопками, размер рамки вокруг кнопок; за структурой следует таблица цветов. Есть процедура, которая возвращает цвет по номеру кнопки, которую следует вызвать в обработчике нажатия на кнопку.
Собираюсь сделать ввиде inc файла.

Posted: Mon Apr 17, 2006 6:34 pm
by diamond
Для процессов и потоков (в документации они мало отличаются) есть две характеристики: PID и номер слота. Что это такое, описано в
http://shade.msu.ru/~msu-se/klbr_doc/09.htm

Posted: Mon Apr 17, 2006 7:02 pm
by Maxxxx32
diamond
Спасибо за отличную документацию.

Posted: Mon Apr 17, 2006 10:41 pm
by Aqwas
diamond
Присоединяюсь :)

Posted: Tue Apr 18, 2006 11:00 am
by Maxxxx32
Алгоритмы компьютерной графики:
http://docs.h1.ru/algcompgr.html

Posted: Wed Apr 19, 2006 4:06 pm
by diamond
Maxxxx32, AquAS
Спасибо, конечно, но вообще-то документация обсуждается в теме
http://meos.sysbin.com/viewtopic.php?p=5117