U
Ulkiorra199218 грудня 2017 р. 09:46
QGraphicsScene
Добрый день, собственно задачка такая, есть 36 частей панорамы, необходимо подгружать части, которые влезают на Scene в данный момент и выгружать в момент скроллинга части не отображающиеся на Scene
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
AD
- Akiv Doros
- 11 листопада 2024 р. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
m
- molni99
- 26 жовтня 2024 р. 01:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
m
- molni99
- 26 жовтня 2024 р. 01:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Останні коментарі
ИМ
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 листопада 2024 р. 11:51
Evgenii Legotckoi31 жовтня 2024 р. 14:37
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов05 жовтня 2024 р. 07:51
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Evgenii Legotckoi24 червня 2024 р. 15:11
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey115 листопада 2024 р. 06:04
NSProject04 червня 2022 р. 03:49
IscanderChe31 жовтня 2024 р. 15:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
День добрый.
А вы эти части панорамы уже разбили на какой-нибудь вектор, наподобие QVector<Image>?
Чтобы мне было понятно, с какими исходными данными вы работаете.
А ещё посмотрите вот этот топик про игру жизнь , там мы обсуждали проблемы производительности и отрисовки большого числа объектов на графической сцене. А также глянуть проект, который есть конкретно в этом посте . Не я его писал, но я его глянул. Кажется там как раз нужныя вам логика отрисовки, ну или схожая. Во всяком случае у меня в памяти осталось, что там не перерисовывались объекты, которые не видны на графической сцене (но могу и ошибаться).
в данный момент, я разрезал панораму 64000 точек на 12000, и сохранил 36 изображений в формате png в папке, логика, на данный момент подгружать из папки тайлы отображающиеся на Scene для экономии памяти
Я понял вашу идею. Я сейчас как раз сходной задачей по тайлам занят, но только делаю это для QML. Однако кое-какие наработки и мысли уже есть.
Сами тайлы для быстродействия я загружал бы все в некоторый пул объектов, как никак чтение и запись в файл тоже не быстрая операция, но вот на графической сцене держал бы только видимые.
экономия оперативной памяти, что бы не грузить к примеру 18 тайлов, которые 2 гб съедят, а грузить 3 к примеру, максимум 4 будут видны на экране, по предварительным расчетам
Понятно. У меня есть кое-какие мысли, но нужно уточнить ещё пару моментов.
Для такого требуется следующая информация:
Ага. вот оно что. Для меня (и конкретно в моей задаче) тайлы составляют карту, в виде матрицы, то есть может быть сетка 40 на 40 тайлов и т.д. А у вас получается 1 на 36.
спасибо большое, хотя бы, направление, как это реализовать, я пока не представляю как реализовать алгоритм
В общем смысл программы будет следующий. Вы открываете через диалоговое окно с файлами панорамы. Тайлы при этом должны иметь все одинаковые размеры (это искусственное ограничение, чтобы показать основной алгоритм, необходимые проверки потом сами реализуете, если будут тайлы разных размеров).
Спасибо большое, за помощь, и с наступающим Новым Годом!!!
Пожалуйста. Вас также с Наступающим Новым Годом!!!
Добрый день. Что-то я совсем забыл про ваш вопрос.
Возможно матрица преобразования попадает в неправильные пропорции и идёт обращение к неинициализированным тайлам. Пройдитесь для начала дебагером, куда там уходит зум в не ту область памяти.
спасибо, за подробное объяснение строчки, а с зумом я разобрался, все работает
Добрый вечер, а можно как то "зациклить" панораму, чтобы если вправо просматривать изображение, то после последнего тайла, грузился 1-ый потом 2-ой и так далее, а при просмотре влево, после 1-ого грузился последний и так по кругу изображение просматривать?
Как вариант умножать ключевые координаты, от которых вы строите весь панораму, на общую ширину панорамы и при прокрутке отталкиваться от этих кратных координат.
не получилось зациклить прокрутку панорамы, все что хотел реализовал, а с зацикливанием уже неделю не могу справиться, не понимаю как умножая ключевые координаты на общую ширину панорамы, можно ее по кругу прокручивать
Как появится свободное время, гляну, что там можно сделать.
я реализовал загрузку тайлов в отдельном потоке, чтобы скроллинг плавный был, может из за того что я его не правильно реализовал не получается зациклить панораму
Насчёт зацикливания... смотрите, Вы знаете количество тайлов и значете их ширину. Допустим будет 10 тайлов с шириной 300 пикселей. Так вот крайняя точка будет равна 3000. если вычесть из этой координаты 3000, то получится, что нужно отрисовать тайл с координатой X равной 0. То есть при прокрутке влево или вправо нужно только прибавлять или вычитать общую ширину изображения, чтобы получить корректную координату тайла, а отрисовывать тайл с координатой 3000, 6000, -3000, -6000 и т.д.
спасибо, завтра попробую, реализовать
Скажите есть вменяемое решение для отображения 360 панорамы в QML или как-то самому можно реализовать? Спасибо!
Да по сути тоже самое нужно делать, что и с виджетами, только кастомное расположение объектов QQuickItem.
Я бы наследовался от QQuickItem и рисовал бы вручную каждый тайл.
Также саму графическую сцену сделал бы из другого QQuickItem, внутри которого бы уже отображал все тайлы.