Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Растровый редактор на Java2D / 16 сообщений из 16, страница 1 из 1
24.03.2014, 14:34
    #38594644
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Коллеги, толкните в нужном направлении, только не очень больно :)
Вот не довелось плотно работать с java2d: на уровне учебных задачек и все. А тут столкнулся и куда рыть не соображу.
Имеется прямоугольная панель с нанесенной на ней сеткой XY (декартовы координаты). Шаг сетки может меняться от 1 до 100 пикселей с шагом 5.
Пользователь мышкой указывает на сетке точку и удерживает кнопку мыши. Поскольку сетка по определению дискретна, то программа должна найти ближайшую точку XY и нарисовать в ней точку. Пользователь тянет мышь и до тех пор пока не отпустит ее, рисуется линия. В общем - простенький, без заморочек растровый редактор.
Что такое алгоритм Брезенхема я знаю. Есть ли примеры? Спасибо
...
Рейтинг: 0 / 0
24.03.2014, 18:52
    #38595051
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplab ,
Если тебе надо алгоритмы отрисовки линий, то что-то похожее было у меня в университете.
Лабу прикрепил к сообщению, а реализованные алгоритмы лежат в пакете algorithm .
...
Рейтинг: 0 / 0
24.03.2014, 19:18
    #38595085
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
А если надо подумать, как сделать фичу с мышкой, что ты описывал, то книга Хорстманн Кей, Корнелл Гари - Java 2. Библиотека профессионала .
...
Рейтинг: 0 / 0
25.03.2014, 08:52
    #38595336
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Спасибо!
Интересный набор классов :) Буду смотреть и учиться
...
Рейтинг: 0 / 0
25.03.2014, 09:58
    #38595393
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplabСпасибо!
Интересный набор классов :) Буду смотреть и учиться
Не, сильно учиться по нему не советую, все-таки лаба в универе =) А лабы пишутся, лишь бы сдать =)
...
Рейтинг: 0 / 0
25.03.2014, 10:58
    #38595454
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
В моем положении и это много :) Хотя бы начать посмотреть что есть и как используется.
Хорстманн и Корнелл - в смысле 2-й том последнего издания?
...
Рейтинг: 0 / 0
25.03.2014, 11:27
    #38595506
Паша01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Оба тома. Если только начинаешь с основ Swingа, то первый том. Местами понадобиться и во второй том заглядывать.
...
Рейтинг: 0 / 0
25.03.2014, 17:00
    #38596060
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplab,
- что-то не сходится.
Если мышкой начали рисовать линию внутри клеточки сетки, то рисовать "тянучку" надо именно от сетки?
Или сделать прыжок мышкой на сетку - прилипание \ снаппинг?
...
Рейтинг: 0 / 0
26.03.2014, 13:57
    #38596935
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Petro123,

Понятно, что попасть мышкой точно в узел сетки (особенно если шаг большой) - не очень легко. Мышь скорее всего попадет куда-то внутрь какого-то квадратика образованного сеткой. Но этот квадратик образован 4-мя узлами сетки. Вот и надо найти ближайший узел сетки и от него тянуть. Так что ответ такой: ткнуть в квадратик, образованный сеткой, найти ближайший узел сетки и из него тянуть линию. Речь ведь о растровой графике в которой точки определяются сеткой
...
Рейтинг: 0 / 0
27.03.2014, 12:26
    #38597935
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplabсеткой, найти ближайший узел сетки и из него тянуть линию.
Если под понятием сетка у тебя - растровый дисплей десктопа (рабочий стол), то изобретать велосипед не надо.
У тебя уже всё есть. Событие MouseClick уже вызывается с этими самыми координатами сетки - X,Y.
Т.е. ближайший узел за тебя находит WinAPI.
Тебе осталось запомнить координаты начала отрезка и на MouseMove рисовать его от начала до текущих на перемещение мышки.
Всё.
...
Рейтинг: 0 / 0
27.03.2014, 14:53
    #38598168
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Petro123,

Эх, если бы так :) Но по условиям (самый первый пост) сетка рисуется на панели - так в условиях. С изменяемым шагом. Привязка идет не к пикселям монитора, а к узлам нарисованной на панели сетки. Т.е. когда я тыкаю мышкой, нужно привязаться не к точке на мониторе, к точке на нарисованной сетке
...
Рейтинг: 0 / 0
27.03.2014, 15:34
    #38598218
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplab,
ok. А растрированная линия тоже строго по сетке?
...
Рейтинг: 0 / 0
27.03.2014, 15:49
    #38598242
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Petro123,
Нет, конечно. Это и невозможно, т.к. в растровых картинках точно рисуются только прямые параллельные осям координат (т.е. по сетке). Если линия не параллельна сетке, то ее надо интерполировать (например, алгоритмом Брезенхема).
...
Рейтинг: 0 / 0
27.03.2014, 19:38
    #38598460
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplab,
строго по сетке, я имел ввиду - как на экране должна выглядеть "тянучка":

или так?

т.е. тут привязка только начальной И? конечной точки.
По варианту-2 тянучка - обычная линия см.выше. Найти нужно только ближайшую на сетке в момент старта. Даже обычным перебором.
Вариант 1 делается сложнее с закраской областей - фальшивых пикселей.
IMHO
...
Рейтинг: 0 / 0
28.03.2014, 09:20
    #38598765
fplab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
Petro123,

Второй вариант.
З.Ы. Прикольная картинка :) С вафельным полотенцем? Сами рисовали?
...
Рейтинг: 0 / 0
28.03.2014, 10:34
    #38598849
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Растровый редактор на Java2D
fplab,
из гугла.
Второй пример - линия обычная, по пикселям монитора. Начальная точка - простым перебором по минимальной дистанции (снаппинг)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Растровый редактор на Java2D / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]