0 / 0 / 1
Регистрация: 01.05.2016
Сообщений: 18
|
|
1 | |
Как узнать координаты точек при движении прямоугольника?12.04.2018, 07:56. Показов 752. Ответов 13
Метки нет (Все метки)
У меня есть прямоугольник, движение которого я могу задавать в разных направлениях через кнопки управления умножая на матрицу. Изначальные координаты мне известны. Но как достать координату в любой момент времени? Вся задача - это сделать заставку типа DVD-video(https://www.youtube.com/watch?v=uy34b76mSNA). Есть идея создать 4 вектора(т. к. у прямоугольника четыре вершины) и умножать их на матрицу одновременно с векторами позиций этих четырех точек, таким образом у нас будет копия четырехугольника. Но чувствую, что есть намного проще метод, который я, увы, не нашел.
OPENGL 4, GLFW, GLAD, GLM
0
|
12.04.2018, 07:56 | |
Ответы с готовыми решениями:
13
Как определить координаты точек пересечения прямоугольника и круга Как узнать координаты точек Q1 и Q2? Как узнать координаты точек на линии тренда? Найти координаты точек и диагональ прямоугольника |
144 / 88 / 23
Регистрация: 31.08.2016
Сообщений: 775
|
|
12.04.2018, 08:33 | 2 |
если координата хранится в переменной, то ее можно считать оттуда в любой момент времени?
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,745
|
|
12.04.2018, 08:38 | 3 |
Ну просто множите исходные точки (центр или углы) на эту матрицу, создавать еще вектора незачем. Странный вопрос, наверное я чего-то не понял
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
12.04.2018, 09:04 | 4 |
вот вам пример сдерите алгоритм от туда:
0
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
12.04.2018, 09:05 | 5 |
потом просто текстурку нацепите и будет как у DVD это просто
0
|
12.04.2018, 10:51 | 6 |
B1ZON,
Создайте класс Rectangle, в котором будут поля для хранения: x, y, width и height и метод Draw(). Тогда вы сможете в любой момент узнать и изменить координаты экземпляров класса Rectangle.
0
|
0 / 0 / 1
Регистрация: 01.05.2016
Сообщений: 18
|
||||||
12.04.2018, 20:01 [ТС] | 7 | |||||
8Observer8, Извините, с класом понимаю, но не могу поверить, что в ГЛ нет такой возможности. Вот у меня есть vertex-шейдер:
А как вывести то? Просто не могу свободно жить, когда у нас есть копии переменных, если до оригинала - рукой подать!
0
|
12.04.2018, 20:54 | 8 |
Вы меня немного запутали с приведённым шейдером. Вы хотите из этого шейдера прочитать, что хранится в переменной aPos? Если да, то этот шейдер, после вызова glDrawArrays или glDrawElements, отработает для каждой вершины, которые хранятся в VBO. Вы никак не можете считать aPos. Тем более, что значение в VBO вам и так известны, потому что вы туда их загружаете. Вы писали в начале, что матрица у вас есть. Почему вы не привели её в шейдере? Как вы создаёте матрицу и какие данные в неё загружаете?
0
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|
12.04.2018, 20:59 | 9 |
Ты всё перепутал местами:
OpenGL - это библиотека вывода информации. Основная часть - это твоя программа, которая её снабжает информацией. Здесь должен работать принцип "вывел и забыл". Но есть нюансы. Как ты будешь отслеживать какая функция изменила твой оригинал, если все к нему имеют доступ на изменение? Так ты никогда не отладишь свою программу. Инкапсуляция нужна, поэтому и нужны копии. Изучай паттерн MVC.
1
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
12.04.2018, 21:32 | 10 |
0
|
0 / 0 / 1
Регистрация: 01.05.2016
Сообщений: 18
|
||||||
15.04.2018, 17:15 [ТС] | 11 | |||||
8Observer8, прошу прощения. Вы правы, я там не привел юниформу и умножение на нее. Видимо, вот так:
1)Вопрос заключаеться в том, что люди пишущие OpenGL-код в режиме ядра, как они взаимодействуют с OpenGL? Пишут свои класы для быстрого создания всяких фигур шейдеров и т.д. Или все же они пишут все наголо?(Тоесть прописывают все буферы и рисуют через команды openGL)? Очень интерестно как новичку. 2)И если вам не сложно можно еще каких-то ресурсов по OGL которыми вы пользуетесь/овались?
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
15.04.2018, 17:18 | 12 |
B1ZON, Ни то ни другое. Рисуют в САПР. В результате поучают буфера точек и индексов которые закидывают в видяху.
0
|
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,745
|
|
15.04.2018, 18:30 | 13 |
0
|
15.04.2018, 19:40 | 14 |
Допустим вы загрузили в VBO два 3D-объекта, к примеру, модель дерева и ящика, созданные в каком-нибудь пакете моделирования, или найденные в интернете. Мы знаете, что индексы дерева хранятся с такого индекса до такого, и индексы ящика с такого индекса по такой. Вам нужно будет вызывать glDrawElements два раза: один раз для дерева и один для ящика. У дерева есть координата (x, y) и у ящика есть координата (x, y). Перед вызовом glDrawElements для дерева вы передаёте в переменную "uniform mat4 trans" координату дерева, а для ящика перед glDrawElements ящика передаёте в "uniform mat4 trans" координату ящика.
Добавлено через 2 минуты Я начинал разбираться с шейдерами по этой книге.
0
|
15.04.2018, 19:40 | |
15.04.2018, 19:40 | |
Помогаю со студенческими работами здесь
14
Найти координаты двух угловых точек прямоугольника не симметричного осям координат Вывести на экран номера и координаты точек, которые лежат внутри прямоугольника Программа, генерирующую координаты точек прямоугольника, равномерно заполненного точками и включающего заданную фигуру Даны два круга, расположенных внутри прямоугольника. Найти координаты точек пересечения этих кругов, если они имеются. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |