|
|
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Коллеги, толкните в нужном направлении, только не очень больно :) Вот не довелось плотно работать с java2d: на уровне учебных задачек и все. А тут столкнулся и куда рыть не соображу. Имеется прямоугольная панель с нанесенной на ней сеткой XY (декартовы координаты). Шаг сетки может меняться от 1 до 100 пикселей с шагом 5. Пользователь мышкой указывает на сетке точку и удерживает кнопку мыши. Поскольку сетка по определению дискретна, то программа должна найти ближайшую точку XY и нарисовать в ней точку. Пользователь тянет мышь и до тех пор пока не отпустит ее, рисуется линия. В общем - простенький, без заморочек растровый редактор. Что такое алгоритм Брезенхема я знаю. Есть ли примеры? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 14:34 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplab , Если тебе надо алгоритмы отрисовки линий, то что-то похожее было у меня в университете. Лабу прикрепил к сообщению, а реализованные алгоритмы лежат в пакете algorithm . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:52 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
А если надо подумать, как сделать фичу с мышкой, что ты описывал, то книга Хорстманн Кей, Корнелл Гари - Java 2. Библиотека профессионала . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 19:18 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Спасибо! Интересный набор классов :) Буду смотреть и учиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 08:52 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplabСпасибо! Интересный набор классов :) Буду смотреть и учиться Не, сильно учиться по нему не советую, все-таки лаба в универе =) А лабы пишутся, лишь бы сдать =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 09:58 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
В моем положении и это много :) Хотя бы начать посмотреть что есть и как используется. Хорстманн и Корнелл - в смысле 2-й том последнего издания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 10:58 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Оба тома. Если только начинаешь с основ Swingа, то первый том. Местами понадобиться и во второй том заглядывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:27 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplab, - что-то не сходится. Если мышкой начали рисовать линию внутри клеточки сетки, то рисовать "тянучку" надо именно от сетки? Или сделать прыжок мышкой на сетку - прилипание \ снаппинг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 17:00 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Petro123, Понятно, что попасть мышкой точно в узел сетки (особенно если шаг большой) - не очень легко. Мышь скорее всего попадет куда-то внутрь какого-то квадратика образованного сеткой. Но этот квадратик образован 4-мя узлами сетки. Вот и надо найти ближайший узел сетки и от него тянуть. Так что ответ такой: ткнуть в квадратик, образованный сеткой, найти ближайший узел сетки и из него тянуть линию. Речь ведь о растровой графике в которой точки определяются сеткой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 13:57 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplabсеткой, найти ближайший узел сетки и из него тянуть линию. Если под понятием сетка у тебя - растровый дисплей десктопа (рабочий стол), то изобретать велосипед не надо. У тебя уже всё есть. Событие MouseClick уже вызывается с этими самыми координатами сетки - X,Y. Т.е. ближайший узел за тебя находит WinAPI. Тебе осталось запомнить координаты начала отрезка и на MouseMove рисовать его от начала до текущих на перемещение мышки. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 12:26 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Petro123, Эх, если бы так :) Но по условиям (самый первый пост) сетка рисуется на панели - так в условиях. С изменяемым шагом. Привязка идет не к пикселям монитора, а к узлам нарисованной на панели сетки. Т.е. когда я тыкаю мышкой, нужно привязаться не к точке на мониторе, к точке на нарисованной сетке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 14:53 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplab, ok. А растрированная линия тоже строго по сетке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 15:34 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Petro123, Нет, конечно. Это и невозможно, т.к. в растровых картинках точно рисуются только прямые параллельные осям координат (т.е. по сетке). Если линия не параллельна сетке, то ее надо интерполировать (например, алгоритмом Брезенхема). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 15:49 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
fplab, строго по сетке, я имел ввиду - как на экране должна выглядеть "тянучка": или так? т.е. тут привязка только начальной И? конечной точки. По варианту-2 тянучка - обычная линия см.выше. Найти нужно только ближайшую на сетке в момент старта. Даже обычным перебором. Вариант 1 делается сложнее с закраской областей - фальшивых пикселей. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 19:38 |
|
||
|
Растровый редактор на Java2D
|
|||
|---|---|---|---|
|
#18+
Petro123, Второй вариант. З.Ы. Прикольная картинка :) С вафельным полотенцем? Сами рисовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 09:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38598218&tid=2127420]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 334ms |

| 0 / 0 |
