powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / нарисовать линию, затем стереть её.
41 сообщений из 41, показаны все 2 страниц
нарисовать линию, затем стереть её.
    #39371730
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем.

есть фон - шахматная доска. на ней необходимо начертить отрезок , а потом стереть с сохранением фона под ним.
можно ли это сделать ?
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371739
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Можно. Например, если разжиться мелом и тряпочкой.
https://docs.oracle.com/javafx/2/api/javafx/scene/shape/Line.html
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371742
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81,

Можно. Например, если разжиться мелом и тряпочкой.
https://docs.oracle.com/javafx/2/api/javafx/scene/shape/Line.html

нарисовать то дело не хитрое. а вот стереть чтобы фон не пострадал ?
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371750
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81нарисовать то дело не хитрое. а вот стереть чтобы фон не пострадал ?
http://stackoverflow.com/questions/22692031/removing-object-from-scene-in-javafx
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371760
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Добрый день всем.

есть фон - шахматная доска. на ней необходимо начертить отрезок , а потом стереть с сохранением фона под ним.
можно ли это сделать ?
автороперация XOR, что позволяет удалить изображение прямоугольника его повторной прорисовкой.
в Java API не знаю, где есть поддержка.
Поиск.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371762
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczandron81нарисовать то дело не хитрое. а вот стереть чтобы фон не пострадал ?
http://stackoverflow.com/questions/22692031/removing-object-from-scene-in-javafx
он же не уточнил что он использует - мел самое то.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174он же не уточнил что он использует - мел самое то.
для мела в операционке нет тряпки)).
Есть ведро с краской и хитрая рисовалка с XOR
))
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371796
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123rema174он же не уточнил что он использует - мел самое то.
для мела в операционке нет тряпки)).
Есть ведро с краской и хитрая рисовалка с XOR
))
Да, ну какой, нахер, XOR. 100500 анимаций работают без него. Но автору же влом конкретизировать вопрос.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371801
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Добрый день всем.

есть фон - шахматная доска. на ней необходимо начертить отрезок , а потом стереть с сохранением фона под ним.
можно ли это сделать ?

Просто нарисуй заново шахматную доску! <:o)
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371807
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

нужно так : рисуется на шахматной доске

линия1 (x1,y1, x10,y10)
линия2 (x2,y2, x20,y20)
линия3 (x3,y3, x30,y30)
линия4 (x4,y4, x40,y40)
линия5 (x5,y5, x50,y50)
линия6 (x6,y6, x60,y60)


потом скажем необходимо стереть линия3 , линия5
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371820
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПросто нарисуй заново шахматную доску! <:o)
Читер!
В далёком 1990м году вышла первая игра Commander Keen, которая, благодаря Джону Кармаку открыла путь аркадам на платформу ПК. Кармак зашел немного дальше нас и придумал как перерисовывать не всю шахматную доску.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371823
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
нужно так : рисуется на шахматной доске

линия1 (x1,y1, x10,y10)
линия2 (x2,y2, x20,y20)
линия3 (x3,y3, x30,y30)
линия4 (x4,y4, x40,y40)
линия5 (x5,y5, x50,y50)
линия6 (x6,y6, x60,y60)


потом скажем необходимо стереть линия3 , линия5
Блин. Не смешно уже. Определитесь с платформой. Я рекомендую JavaFX.
Вам покакой-то неведомой причиной нужно на Java2D? ОК.
100500 примеров кода:
https://www.google.com/search?q=Java2D animate line
JDK demo, разве не вам я на днях советовал посмотреть?
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371853
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81нужно так : рисуется на шахматной доске

линия1 (x1,y1, x10,y10)
линия2 (x2,y2, x20,y20)
линия3 (x3,y3, x30,y30)
линия4 (x4,y4, x40,y40)
линия5 (x5,y5, x50,y50)
линия6 (x6,y6, x60,y60)


потом скажем необходимо стереть линия3 , линия5
Блин. Не смешно уже. Определитесь с платформой. Я рекомендую JavaFX.
Вам покакой-то неведомой причиной нужно на Java2D? ОК.
100500 примеров кода:
https://www.google.com/search?q=Java2D animate line
JDK demo, разве не вам я на днях советовал посмотреть?

да не хотелось бы изучать всю технологию , я думал это просто всё можно устроить. А графика тут это не главное . это всего лишь иллюстрация к решению. просто реализация затянется надолгие дни .
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371870
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczДа, ну какой, нахер, XOR. 100500 анимаций работают без него. Но автору же влом конкретизировать вопрос.
))
счас погуглил
авторпотому что, кажется, нет режима XOR рисования для JavaFX холста, в отличие от AWT.
конечно. В FX этот режим нее нужен, т.к. заново рисуется шахматная доска целиком.
IMHO
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371872
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81да не хотелось бы изучать всю технологию

Какую всю?

andron81я думал это просто всё можно устроить.
Можно.

andron81А графика тут это не главное .
А что тогда?

andron81это всего лишь иллюстрация к решению. просто реализация затянется надолгие дни .
ОК. Можно не продолжать.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371930
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
andron81я думал это просто всё можно устроить.
Можно.



раз так , то и написали бы )
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371932
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81раз так , то и написали бы )
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class MyComponent extends JComponent { 
   paintComponent(Graphics g){
       drawBackground(g);
       if(lineIsVisible) {
           drawLine();  
       }
   }   
}
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371934
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

спасибо
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371978
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Будь осторожен с рисованием . Судя по вопросу ты намерен анимировать движения шахматной фигуры.
Этот фокус просадит производительность во много раз. По умному - нужен отдельный поток который
Не чаще периода 100 мс будет обновлять статус доски.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39371982
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonandron81,

Будь осторожен с рисованием . Судя по вопросу ты намерен анимировать движения шахматной фигуры.
Этот фокус просадит производительность во много раз. По умному - нужен отдельный поток который
Не чаще периода 100 мс будет обновлять статус доски.
Не-не-не, Дэвид Блейн. Хороший Game Loop работает совсем иначе.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372014
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonandron81,

Будь осторожен с рисованием . Судя по вопросу ты намерен анимировать движения шахматной фигуры.
Этот фокус просадит производительность во много раз. По умному - нужен отдельный поток который
Не чаще периода 100 мс будет обновлять статус доски.

вы правы . настораживает , что мой обычный алгоритм в глубину не находит решений и за 5 мин и более...
может я визуально я увижу зацикливание.
сорри за минифлуд
у меня всё это получалось, за исключением стирания линии. стирал я её же методом отрисовки другим цветом, но этот фокус не проходит: белую черту меняю на серую, но доска ведь не серая :)
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372024
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81у меня всё это получалось, за исключением стирания линии. стирал я её же методом отрисовки другим цветом, но этот фокус не проходит: белую черту меняю на серую, но доска ведь не серая :)
Никто в здравом уме линии не стирает. Отрисовывают фон и всё. А потом оптимизируют, отрисовывая только нужные участки фона.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372059
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Отрисовывают фон и всё. А потом оптимизируют, отрисовывая только нужные участки фона.

очень интересно. вот хочу удалить линию помеченным красным. см. рисунок.
объясните , пожалуйста, как тут можно отрисовать фон ?
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372062
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

я извиняюсь , я возможно умолчал, что помимо доски есть ещё и другие линии , которые при удалении какой-либо линии "страдать" не должны
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372072
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81очень интересно. вот хочу удалить линию помеченным красным. см. рисунок.
объясните , пожалуйста, как тут можно отрисовать фон ?
Блин, как трудно-то. Ещё раз. У растра нет такого понятия как удалить. У растра есть понятие поменять цвет пикселя.
Чтобы оперировать таким понятием как добавить-удалить линию, нужно иметь модель предметной области, которая могла бы это делать. И отдельно от модели - код рисования текущего состояние модели.
Это всё уже реализовано в куче готовых фреймверков, но не в Java2D.

Возможно в вашем случае и правда XOR будет простейшим решением, так как вы ленитесь понимать как всё устроено и просто хотите чтобы работало хоть как-то.
https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#setXORMode(java.awt.Color)
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372076
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Можно. Гугли по словам двойная буферизация.

Блажкович прав по поводу настольных и логических игр. Отрисовка Марина действительно может и должна
Происходить по другим событиям.

Но в данном конкретном случае хвостовая часть пути будет генерировать сотни тысяч событий в секунду
И у нас нет достоверной формулы как отображать эти события в кадры анимации.

Поэтому я предлагаю асинхронные обновления картинки по таймеру в другом потоке.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372078
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81очень интересно. вот хочу удалить линию помеченным красным. см. рисунок.
объясните , пожалуйста, как тут можно отрисовать фон ?
Блин, как трудно-то. Ещё раз. У растра нет такого понятия как удалить. У растра есть понятие поменять цвет пикселя.
Чтобы оперировать таким понятием как добавить-удалить линию, нужно иметь модель предметной области, которая могла бы это делать. И отдельно от модели - код рисования текущего состояние модели.
Это всё уже реализовано в куче готовых фреймверков, но не в Java2D.

Возможно в вашем случае и правда XOR будет простейшим решением, так как вы ленитесь понимать как всё устроено и просто хотите чтобы работало хоть как-то.
https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#setXORMode(java.awt.Color)

да я не ленюсь . просто у меня набор задач - страна не выученных уроков так сказать (вот рекурсия например) кот. я хочу реализовать на java , мне сначала на их реализацию напор надо сделать. потом уже все технологии java. а сейчас их по минимуму. вся надежда была на вас )
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372084
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81да я не ленюсь . просто у меня набор задач - страна не выученных уроков так сказать (вот рекурсия например) кот. я хочу реализовать на java , мне сначала на их реализацию напор надо сделать. потом уже все технологии java. а сейчас их по минимуму. вся надежда была на вас )
Вы впустую тратите время на изучение Java2D, в то время когда на JavaFX это делается проще.
Рисуем доску
http://stackoverflow.com/questions/9738146/javafx-how-to-set-scene-background-image
Добавляем линии
http://www.java2s.com/Tutorials/Java/JavaFX/0040__JavaFX_Line.htm
Примеров вагон
https://www.codeproject.com/articles/35628/intro-to-javafx-dummy-chess
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372094
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

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

хочу разобраться с setXORMode
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372104
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

намекните какой принцип работы у setXORMode одним предложением, если не сложно
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372114
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Blazkowicz,

намекните какой принцип работы у setXORMode одним предложением, если не сложно
https://ru.wikipedia.org/wiki/Битовые_операции#.D0.98.D1.81.D0.BA.D0.BB.D1.8E.D1.87.D0.B0.D1.8E.D1.89.D0.B5.D0.B5_.C2.AB.D0.98.D0.9B.D0.98.C2.BB_.28XOR.29
(x XOR y) XOR y=x
Где X это фон, а Y это линия.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372115
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Blazkowicz,
намекните какой принцип работы у setXORMode одним предложением, если не сложно
LineTo(0,0);
LineTo(10,10);
нарисовали
LineTo(0,0);
LineTo(10,10);
стёрли (если координаты 1 в 1)
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372511
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слоями эта задача решается.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372559
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,
В теме вроде линия. А линии и прямоугольники выделения (в народе тянучки) решаются через xor.
Мультики через слои. Согласен.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372562
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Слоями эта задача решается.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372564
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183Слоями эта задача решается.
Идея интересная. Но мало чем отличается от решения с paintComponent, которое я привел выше. Точно так же как нужно почереди отрисовывать слои, можно и отрисовывать линии. А учитывая что понятия слоёв в Java2D нет, автор и с этим не разберется.

Хотя слои можно реализовать через Swing. Но для этого понадобится отдельный прозрачный контрол на каждую линию.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372567
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz982183Слоями эта задача решается.
Идея интересная. Но мало чем отличается от решения с paintComponent, которое я привел выше. Точно так же как нужно почереди отрисовывать слои, можно и отрисовывать линии. А учитывая что понятия слоёв в Java2D нет, автор и с этим не разберется.


вообще разбираться не хочется тут если честно. мне бы код пригодный для копипасты )))))))) , я же не игры делаю. у меня графика не первостепенная задача, а просто как иллюстрация.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372576
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81вообще разбираться не хочется тут если честно.
Это-то и подозрительно.

andron81мне бы код пригодный для копипасты )))))))) , я же не игры делаю. у меня графика не первостепенная задача, а просто как иллюстрация.
И что? Делайть нужно хорошо, либо не делать вообще. Второстепенные задачи это те котороые делаются во вторую очередь, а не те которые делаются на от..сь.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372580
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81вообще разбираться не хочется тут если честно.
Это-то и подозрительно.


потому что просто и быстро разобраться не выйдет. а конкретно сейчас другие цели
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372596
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
Для копипасты нарисуй заново фон.
Удачи.
...
Рейтинг: 0 / 0
нарисовать линию, затем стереть её.
    #39372599
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andron81,
Для копипасты нарисуй заново фон.
Удачи.

да нет уж )) буду XOR юзать
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / нарисовать линию, затем стереть её.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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