|
|
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Приветствую, такой вопрос, можно ли смасштабировать не весь холст, в смысле, что часть изображения должна масштабироваться, а часть нет. Например, рисуем на холсте сетку, соответственно при масштабировании все фигуры увеличиваются(их линии утолщаются), а линии сетки должны оставаться в 1 пиксель. Как этого добиться или так не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 11:34 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Ну, если мне не изменяет склероз, то нужно взять VolatileImage (для пущщей производительности), отрисивать туда вашу фигуру и применить трансформацию. А затем уже результат отрисовать на холст. Но зачем это делать самому при наличии JavaFX или хотя бы JGraphT мне не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 11:40 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont know, векторные изображения (толщина не масштабируется) делаются так: - все фигуры и сетка в том числе в массиве - устанавливаются масштаб или окно выводав объект Координаты. - при отрисовке в методе Draw локальные координаты канвас в пикселях получаются Код: java 1. Все фигуры и БД работают в глобальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 11:48 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont know, второй вариант - сетку рисовать отдельно каждый раз при выводе фигур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 11:50 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Не умею я JavaFX, да и думаю что не принципиально это, что использовать, Swing или JavaFX, суть одна и та же. Поясню ситуацию(по прошлой моей теме здесь) Есть класс канвы, на которой я рисую(просто унаследованный от JPanel). Так же есть класс(класс документа), унаследованный от абстрактного класса, содержащего метод draw(). Соответственно в методе paintComponent() я пытаюсь рисовать всё это своё хозяйство. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. и метод рисования в моём классе. Здесь я пытаюсь нарисовать свой "документ" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Теперь загвоздка: например, раз рисуем документ, нужно нарисовать рамку вокруг него. Хорошо, рисуем, но если рисовать его в методе draw(), то при масштабировании, будет масштабироваться и толщина рамки, что мне не нужно, она должна всегда быть тонкой. Если рисовать её в paintComponent, то рамка рисуется как-то не корректно, с одной стороны линия есть, с другой нет. Тоже самое, подозреваю, будет и с сеткой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:35 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont knowSwing или JavaFX, суть одна и та же. Вообще нет. JavaFX работает сразу с вектором, и подобные проблемы там решаются на много проще. При этом очевидно что ваша задача заточена под вектор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:43 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, +1 I dont know, вы писали что лупу сделать раз плюнуть? Код: java 1. в растровом виде выше это просто. А в вектре требуются пересчёты координат. ..... Сетка у вас независима от объектов рисования? Значит рисуя её последней она будет верная. только не масштабируйте её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 14:53 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont knowнапример, раз рисуем документ, делай все сообщения со скринами. Это графика, а не музыка и литература. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:00 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Petro123, Даже не знаю как ответить. В целом сетка не зависима от того что нарисовано на холсте. Размер ячейки задаётся общим размером, например 1мм и переводится в пиксели, далее уже масштабируется, когда крутим колёсиком мыши. Так же к цзлам сетки привязан курсор, т.е при движении курсора, нарисованный курсор прыгает только по узлам этой сетки. Вот пара скриншотов: 1. если рисовать рамку документа в самом методе отрисовки документа(в методе draw()) 2. Если рисовать извне(из метода paintComponent холста), в целом вроде нормально, как-то кривовато Думается мне, что те вещи, которые не должны масштабироваться, лучше рисовать извне, т.е в методе paintComponent() P.S. чтобы было удобнее, добавил код проекта во вложение, потому что не знаю, какие участки кода кода захочется народу посмотреть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:25 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont know2. Если рисовать извне(из метода paintComponent холста), в целом вроде нормально, как-то кривовато пока IMHO всё нормально. Это рамка 3D )))) Ещё больше толщину + цвет серый + сетка и запости сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:35 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
Petro123, Не, так не по фен-шую, белый квадратик всё равно обрамить тоненькой рамочкой надо, чтобы красивше было ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:46 |
|
||
|
AffineTransform Можно ли смасштабировать не весь холст?
|
|||
|---|---|---|---|
|
#18+
I dont knowPetro123, Не, так не по фен-шую, белый квадратик всё равно обрамить тоненькой рамочкой надо, чтобы красивше было ) AFAIK если на 1 пиксель, то там в самой операционке траблы были. Насколько помню. Второй вариант - поставь цвет красный и нарисуй рамку ПОСЛЕ ...последней. Ждём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2016, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=90&tid=2123787]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 277ms |

| 0 / 0 |
