|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
|
Выбор объектов сцены мышью18.12.2015, 22:33. Показов 7493. Ответов 14
Метки нет (Все метки)
Есть сцена с шарами. Нужно реализовать возможность выбора шара мышью.
Находил примеры, но они используют библиотеку glut. Как сделать без нее?
0
|
|
| 18.12.2015, 22:33 | |
|
Ответы с готовыми решениями:
14
Вращение сцены мышью Вращение сцены мышью Выделение объектов сцены центром экрана посредством камеры |
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
|
| 21.12.2015, 11:34 [ТС] | |
|
snake32,
А если шаров 1000?
0
|
|
|
|
|
| 21.12.2015, 12:00 | |
|
SkyEX, ну во-первых 1000 не так уж и много =)
во-вторых есть методы оптимизации quadtree, octotree в-третьих есть ещё один способ: рисовать сцену второй раз в отдельный буфер где цвет объекта - это ID этого объекта. Потом считывая пиксель с этого буфера мы прямо сразу узнаём ID или если там 0 то значит не попали.
0
|
|
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
|
| 21.12.2015, 13:59 [ТС] | |
|
snake32,
3 способ не получится, если включено освещение?
0
|
|
|
|
||
| 21.12.2015, 14:09 | ||
|
Недостатком является то что выбрать объект под объектом уже не получится. Потребуется ещё проход без верхних объектов.
0
|
||
|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
|
| 23.12.2015, 10:31 | |
|
зачем так сложно?
http://masandilov.ru/opengl/object-selection - вот пример урока по которму я лично делал выбор объектов мышью. оч удобно и понятно. Суть сводится к следующему: Каждый шар есть объект. Его идентифицируем и отрисовываем в фонкции из урока. При выборе мыши выдается идентификатор шара.
1
|
|
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
|
| 27.04.2016, 14:05 [ТС] | |
|
Андрей2011, сделал, спасибо
0
|
|
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
||||||
| 29.04.2016, 23:52 [ТС] | ||||||
|
Возникла небольшая проблемка. Выбор объектов работает правильно только когда ширина окна меньше высоты. Когда наоборот, то по нажатию на место ниже объекта, происходит его выбор. И чем больше ширина, по отношению к высоте, тем на большее расстояние вниз от объекта нужно нажимать
Делал по уроку (http://masandilov.ru/opengl/object-selection), но немного изменил код под свои нужды.
0
|
||||||
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
||||||
| 03.05.2016, 12:15 [ТС] | ||||||
|
Если назначать вьюпорт по минимальной величине размера окна, то все выбирается нормально:
0
|
||||||
|
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
|
||
| 03.05.2016, 22:12 | ||
|
SkyEX, а знаешь как сделать ,чтобы за пределы стены не выходил?
или за пределы поля? самый простой принцип одной строкой 3д квартиру не делал? с обоями,диванами Добавлено через 6 минут например ты прописал клик по обьекту при неподвижной сцене ,по осям X,Y но если сцену повернуть то надо клик высчитывать по осям Y,Z И вообще,это как если писать гонки,машину надо разворачивать по 3м осям,и двигать её в сцене тоже по трем осям,исходя из текущего glRotate() ,там уже идет сложная математика,вычесть поворот камеры,повернуть машину,и потом двигать машину исходя из градуса угла Добавлено через 7 минут луч мыши может быть по 3м осям,в трехмерной виндовс,а у нас 2х мерная виндовс Я писал в правительство на счет создания 3х мерной российской ОС ,в 2006 году Там например будет 3д комната в виндовс,и окна будут открываться не только по оси X,Y ,но и по оси Z вглубь экрана... и можно будет лететь в глубь экрана,пришел тогда в 2006 году ответ из правительства,что моя идея принята к вниманию,будет изучаться
0
|
||
|
0 / 0 / 1
Регистрация: 24.09.2015
Сообщений: 33
|
|
| 03.05.2016, 23:09 [ТС] | |
|
Detektor, ммм, ок
0
|
|
| 04.05.2016, 12:14 | ||
|
Не по теме:
Это печально. Я бы на твоём месте уже чисто из принципа бы разобрался в этой теме. К тому же, если тебе нравится 3D так же как и мне, то ты просто обязан это сделать.
0
|
||
|
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
|
||||||||||||
| 04.05.2016, 16:54 | ||||||||||||
|
3д комнату делал с диваном? я тут шахматы написал на php ,и на opengl писал шашки,опыта много Добавлено через 10 минут надо шарить в геометрии и черчении,чтобы вычислить клик по шару я покурил подумал,и решил пока в теории: x_mysh=GetPosCursor(x) // примерно y_mysh=GetPosCursor(y) // примерно if(x>90 & x<91) { (if(y>60 & y<61) { if(z>20 & z<21) { рисуем для теста кликнутый шар,координата попала } ну короче теоретически придумал,надо 40 раз уточнить и отладить... с первого раза идеально никогда не получится Добавлено через 10 минут такую штуку я делал ,типа клик на меню... кривой метод,глупо вычислять 2д курсор в 3д измерении, лучше просто спрограммировать "стрелки",и нажимать стрелку например ВНИЗ,и сразу переключать выделенные обьекты, или от перемещения курсора сразу переключать выделенные обьекты, я так в шашках сделал перемещение по клеткам
вот как узнать позицию курсора:
0
|
||||||||||||
|
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
|
|
| 04.05.2016, 18:49 | |
|
0
|
|
| 04.05.2016, 18:49 | |
|
Помогаю со студенческими работами здесь
15
Выбор объектов через шейдер движение сцены QGraphicsScene мышью Удаление объектов со сцены Фиксация объектов сцены Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|