0 / 0 / 1
Регистрация: 01.05.2016
Сообщений: 18
|
|
1 | |
Как узнать координаты точек при движении прямоугольника?12.04.2018, 07:56. Показов 852. Ответов 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? Как узнать координаты точек на линии тренда? Найти координаты точек и диагональ прямоугольника |
1911 / 773 / 108
Регистрация: 01.10.2012
Сообщений: 4,214
|
|
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
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
15.04.2018, 17:18 | 12 |
B1ZON, Ни то ни другое. Рисуют в САПР. В результате поучают буфера точек и индексов которые закидывают в видяху.
0
|
1911 / 773 / 108
Регистрация: 01.10.2012
Сообщений: 4,214
|
|
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
Найти координаты двух угловых точек прямоугольника не симметричного осям координат Вывести на экран номера и координаты точек, которые лежат внутри прямоугольника Программа, генерирующую координаты точек прямоугольника, равномерно заполненного точками и включающего заданную фигуру Даны два круга, расположенных внутри прямоугольника. Найти координаты точек пересечения этих кругов, если они имеются. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|