U
Ulkiorra1992Жел. 18, 2017, 9:46 Т.Ж.
QGraphicsScene
Добрый день, собственно задачка такая, есть 36 частей панорамы, необходимо подгружать части, которые влезают на Scene в данный момент и выгружать в момент скроллинга части не отображающиеся на Scene
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
OI
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
AD
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
IscanderCheҚаз. 31, 2024, 3: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, внутри которого бы уже отображал все тайлы.