Проблема с абсолютными координатами станицы.

Автор Kadet, 16 февраля 2022, 18:48

0 Пользователи и 1 гость просматривают эту тему.

Kadet

Добрый день!
Прошу проконсультировать по следующему вопросы.

Снова написал пару корявых макросов.
Рисую разноцветные прямоугольнички на странице calc.
Пока масштаб сетки в стандарте всё рисуется хорошо, по-запрограммированному (img1).
Как только меняю масштаб сетки листа calc то всё плывёт (img2).

Абсолютные и фиксированными координаты являются только первичные (X,Y), в примере: X=1000; Y=2000.
Все остальные координаты деталей выстраиваются и вычисляются относительно этих первичных (X,Y).

В демке данный косяк лучше всего видно при задании: "форма фермы" - 2 или 4. "Тип решётки" - любой, хотя самый наглядный - 44.
При смены "формы" - стирается весь рисунок. При смене типа решётки меняется только внутренняя решётка.

Чтобы увидеть эффект нужно вначале прорисовать какую-нибудь ферму в стандартной сетке. Затем изменить масштаб сетки (соответствующей кнопкой - 500х500) и перерисовать тоже самое уже в новом масштабе.

Так вот вопрос:
Почему так происходит и как с этим бороться.

Предвосхищая лишние вопросы - мне нужно изменить масштаб, хочется, красивая тетрадная клетка получается и работать в ней в некоторых моментах удобней, чем в стандарте.

Заранее спасибо!

mikekaganski

Не могу воспроизвести на Version: 7.3.1.1 (x64) / LibreOffice Community
Build ID: 349cd3ad57dce98d6b54b76f8e9f456ac7d7edb7
CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: en-US (ru_RU); UI: en-US
Calc: CL

Хотя артефактов типа дрожащих кнопок и отсутствия содержимого диалогов и меню хватает :)
С уважением,
Михаил Каганский

Kadet

М-да. Я так и думал.

Я ловлю этот косяк на:
Version: 7.3.0.3 (x86) / LibreOffice Community
Build ID: 0f246aa12d0eee4a0f7adcefbf7c878fc2238db3
CPU threads: 2; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: ru-RU
Calc: threaded

Завтра попробую на W10(64), на другой машине. Вероятнее всего там она тоже не проявится, как и у вас.

Давно уже периодически, на машинах с разными характеристиками абсолютные координаты бывает плывут. Чаще всего это связано именно с масштабированием ячеек. Даже если не всё масштабировать, а лишь некоторые столбцы или строки. Рисунок может уплыть.
У одного моего заказчика есть ноут с усиленными графическими характеристиками (точно не могу сказать какими). Так вот у него много чего плывёт. И никак поправить это я не могу. Потому что на других компах, на которых я могу тестировать этой ошибки нет.
Думал, что это результат каких-нибудь графических наворотов.

А тут попался на масштабировании. К тому же только на 32-битной разрядности.
В общем, завтра проверю и сообщу.

Kadet

А исследовать ошибку всё равно придётся на домашнем.
Интересно, как поймать где и как идёт смещение абсолютных координат при масштабировании?

Причём смещению подвергаются не все элементы. Скажем "стойки" (синие вертикали), судя по всему имеют правильное положение. И в самом треугольнике (красные) длинная нижняя горизонтальная и левая косая - имеют ошибку, а правая косая - имеет правильное положение. Это видно когда меняя масштаб перерисовываешь одну и ту же красную фигуру.

Т.е. проблема проявляется не во всех объектах и не со всеми координатами.
В общем завтра покручу и поверчу это. Авось накопаю чего-нибудь.

rami

Цитата: mikekaganski от 16 февраля 2022, 21:14
Не могу воспроизвести на Version: 7.3.1.1 (x64) / LibreOffice Community
У меня воспроизводится и на 7.2.4.1 и на 7.3.1.1

Воспроизводить нужно на минимально воспроизводимом примере, а не на "этом вот этом вот всем" ;D

Для отрисовки фигуры расчёты не нужны, хватит одной фигуры с фиксированными размерами:

1. в приложенном документе рисуем фигуру (кнопка Draw)
2. меняем размер ячеек (кнопка 500x500)
3. рисуем вторую фигуру (кнопка Draw)
4. фигуры не совпадают, хотя все размеры одинаковы

5a. если выделить "Rectangle_1" (двойным щелчком Навигаторе), затем нажать Shift+стрелка вниз и Shift+стрелка вверх, то фигуры совмещаются.
5b. если выделить "Rectangle_2" (после создания новых фигур), затем нажать Shift+стрелка вниз и Shift+стрелка вверх, то фигуры не совмещаются.

Кнопки: Standard — стандартный размер ячеек, RemoveAll — удалить фигуры.

mikekaganski

#5
Цитата: rami от 17 февраля 2022, 11:01
Воспроизводить нужно на минимально воспроизводимом примере, а не на "этом вот этом вот всем" ;D

+100500!
Repro. Нужен баг! (ц)

Причём это явно что-то с отрисовкой.
Сохранение и переоткрытие совмещает объекты.
Две отмены и затем два возврата - совмещают объекты (и при этом начинают нормально показываться меню).
Свойства объектов, выделенных навигатором, показывают одни и те же координаты.
Пока не проделаешь танцы, UI глючит.

Короче, прекрасный демонстратор бага.
С уважением,
Михаил Каганский

mikekaganski

С уважением,
Михаил Каганский

Kadet

Спасибо за содействие!

Проверил на своей рабочей машине, где W10(х64). Косяк проявляется.
Т.е. от разрядности это не зависит.

Version: 7.3.0.3 (x64) / LibreOffice Community
Build ID: 0f246aa12d0eee4a0f7adcefbf7c878fc2238db3
CPU threads: 2; OS: Windows 10.0 Build 19042; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: ru-RU
Calc: threaded

rami

Цитата: Kadet от 16 февраля 2022, 18:48мне нужно изменить масштаб, хочется, красивая тетрадная клетка получается и работать в ней в некоторых моментах удобней, чем в стандарте.
Можно "обойти" этот баг:

1. можно сделать шаблон "тетради в клеточку для 5 класса" с макросами и использовать его для новых документов.
2. в вашем исходном документе после отрисовки всех деталей сгруппировать их в группу, это предотвратит "расползание".

mikekaganski

С уважением,
Михаил Каганский

Kadet

#10
Цитата: rami от 17 февраля 2022, 15:43Можно "обойти" этот баг:

1. можно сделать шаблон "тетради в клеточку для 5 класса" с макросами и использовать его для новых документов.
2. в вашем исходном документе после отрисовки всех деталей сгруппировать их в группу, это предотвратит "расползание".
Я всё изначально рисовал в стандарте. А потом попробовал клетку. И поплыло. Т.е. - думаю таки в стандарте правильно, а в клетке - косяки, на которрые нужно выставлять сразу какие-то корректирующие коэффициенты. Найти бы их.

По 2-му пункту. Было бы хорошо, но клетку я делаю изначально, перед началом рисования... Как фон. Прикольнентко так получается. Дизайн такой родной и ностальгический для всех... приятный.
А после масштабирования - уже идёт "плаванье". А рисовать, а потом масштабировать не получается. Ведь люди могут рисовать сначала одно, потом пробовать другое, третье. Пока не найдут что-нибудь для себя удобоваримое.
Т.е. - однозначно, сначала масштабирование, затем рисование.

Kadet

Цитата: rami от 17 февраля 2022, 15:431. можно сделать шаблон "тетради в клеточку для 5 класса" с макросами и использовать его для новых документов.
Поразмышлял. Нет не получится. У меня же, как всегда, калк в виде вложения в форму БД и всегда создаётся сызнова при каждом новом запуске сей формы. И шаблоном пользоваться не получается... Либо таскать этот шаблон вместе с установочными архивами самой базы. Не хотелось бы.

Я надеюсь, что в те времена, как моя БД созреет к работе, творцы таки решат эту проблему. Я не тороплюсь. Ещё много работы с БД. Обычно Михаил быстро решает подобные вопросы, за что ему большое человеческое спасибо! А у меня ещё время есть, думаю с месяц.
В общем, подождём.

mikekaganski

#12
Цитата: Kadet от 17 февраля 2022, 16:19Обычно Михаил быстро решает подобные вопросы

Э, нет, тут я ничего не сделаю. Если автор бага не исправит - его грандиозные изменения не поддаются расшифровке.

Цитата: Kadet от 17 февраля 2022, 16:09Т.е. - думаю таки в стандарте правильно, а в клетке - косяки, на которрые нужно выставлять сразу какие-то корректирующие коэффициенты. Найти бы их.

Никаких коэффициентов искать не надо. Это косяк исключительно отрисовки - при обновлении он исправляется сам. Будете применять коэффициенты - начнёте действительно делать другую геометрию.
С уважением,
Михаил Каганский

rami

Цитата: mikekaganski от 17 февраля 2022, 15:44Ох, а косяки с меню, диалогами и дрожанием кнопок на Windows
На Маке этого нет, но есть другое:
1. после нажатия на кнопки, их цвет становится более тёмным. Исходный цвет возвращается после перехода в другое окно или прокрутки листа (после перерисовки кнопок)
2. цвет рамки активной ячейки (на обоих снимках E3) сделали как цвет подсветки столбцов и строк (изменяется в "Системных настройках"), а должен быть чёрный. Я могу сделать его чёрным, тогда подсветка во всех других программах станет страшная :o.

mikekaganski

Цитата: rami от 17 февраля 2022, 16:34цвет рамки активной ячейки (на обоих снимках E3) сделали как цвет подсветки столбцов и строк (изменяется в "Системных настройках"), а должен быть чёрный.
Это совсем другое - реализовано Натальей Гавриловой в tdf#142121 :)
С уважением,
Михаил Каганский