|
3 / 3 / 3
Регистрация: 10.03.2015
Сообщений: 62
|
|||||||||||
Матрица поворота. Вращение прямоугольника вокруг точки пересечения диагоналей17.12.2015, 19:44. Показов 3441. Ответов 11
Метки gamedevelopment (Все метки)
Нужно сделать вращение прямоугольника вокруг его центра. Написал метод, где в цикле каждая из координат сначала переводится в систему с началом в определённой точке, вращается с помощью матрицы поворота и переводится обратно в систему координат окна.
Исходник и exe файл Debug.rar Может кто знает, в чём ошибка?
0
|
|||||||||||
| 17.12.2015, 19:44 | |
|
Ответы с готовыми решениями:
11
Вращение прямоугольника вокруг точки Вращение прямоугольника вокруг точки |
|
|
|||||||
| 18.12.2015, 16:23 | |||||||
Сообщение было отмечено sereja322 как решение
Решение
1
|
|||||||
|
64 / 17 / 3
Регистрация: 09.11.2013
Сообщений: 120
|
|
| 18.12.2015, 23:29 | |
|
прикол ) задачу не решил,и под видом "че проще" еще 1 задачу задал ...типа сиди ломай голову студент,и свою реши и его неизвестный код реши)))
0
|
|
|
3 / 3 / 3
Регистрация: 10.03.2015
Сообщений: 62
|
|
| 18.12.2015, 23:34 [ТС] | |
|
Intronessia, не понял Вас..
0
|
|
|
64 / 17 / 3
Регистрация: 09.11.2013
Сообщений: 120
|
||
| 18.12.2015, 23:48 | ||
приходит новичок на форум-задает простой вопрос,и ему прогеры ошалелые задают навстречу 2 заумных встречных вопроса,то есть ставят в тупик еще на начале разговора...И сиди думай )) я утром прочитал тему...подумал ...скачал файл-но решил что не помогу,1.не понял проблему.2.не понял задачу.3.включил программу-черный квадрат идет вверх,решил что как нибудь залезу в код - и сделаю координату ИГРЕК статическую ...и еще надо сделать автономное вращение квадрата - без кнопочки...и тогда сразу прогу включишь - и будет видно автоматом по вращению че не так... а то кликать кнопку 40 раз замучаешься при тестировании... я такие штуки делал...там были длиннющие формулы по расчету иксов и игреков ... из 2д формы рисовал 3д фигуры на бейсике вращалка 2007 г. обьясни ка че не так ,какое задание было...Я вижу крутится прямоугольник ... ты код кинул а че не так не понял я
0
|
||
|
3 / 3 / 3
Регистрация: 10.03.2015
Сообщений: 62
|
|
| 19.12.2015, 00:59 [ТС] | |
|
Прикольно, свой opengl?) Сам исходник скинул на крайний случай, так как я его должным образом не комментировал ещё. Я сделал класс Rectangle, где прямоугольник представляется четырьмя точками и в этом классе метод void Rotate(double degree, PointF around), который вращает каждую точку прямоугольника вокруг точки around. Там применяется матрица поворота и всё прекрасно работает. Проблема в том, что неправильно вычисляется точка пересечения диагоналей прямоугольника при его повороте(точка начинает сдвигаться по первой диагонали в сторону первой вершины прямоугольника). Скорее всего что-то не то в формуле, которая используется во втором куске кода.
Добавлено через 31 секунду snake32, т.е. по прямоугольнику описанному вокруг исходного? Их центр всегда будет совпадать?
0
|
|
|
|
||
| 19.12.2015, 01:23 | ||
|
Intronessia, говнокодер, я предложил альтернативный вариант вычисления центра фигуры, так как именно там по мнению автора темы ошибка.
А что предложил ты? Похвастался устаревшим opengl'ем? Добавлено через 5 минут
0
|
||
|
3 / 3 / 3
Регистрация: 10.03.2015
Сообщений: 62
|
|
| 19.12.2015, 01:32 [ТС] | |
|
Спасибо, пойду посплю, а завтра подумаю на эту тему. Если центр будет всегда совпадать, то сделаю именно так, потому что в этом методе вычислений по меньше будет, следовательно скорость работы выше.
0
|
|
|
|
|
| 19.12.2015, 01:49 | |
|
sereja322, быстрее будет если центр вычислить 1 раз и сохранить вместе с фигурой. А потом вращать её сколь угодно раз.
Добавлено через 3 минуты Или хотя бы в процессе вращения не вычислять каждый раз
0
|
|
|
64 / 17 / 3
Регистрация: 09.11.2013
Сообщений: 120
|
|
| 19.12.2015, 01:53 | |
|
ага,давай давай,свои пупер аргументы ))
боевой арсенал - 1.Назвать быдло кодером,2.Назвать программы устаревшими, 3.написать пару раз "ФЕЙСПАЛМ",4.задать навстречу пару тупых тупиковых вопросов, 5.и потом забанить оппонента ,если посмеет ответить )) я же сказал я знаком с такой темой лет 9,уже знаю кто такие "игорь3д",снаке32,и какой то еххеле91 ...)) кроме них тут никто не отвечает,потому что все люди личной жизнью заняты эти трое только в каждой теме вредят ,а список одобрений аж на 1400 )) годами висят тут бездельники по 5000 сообщений пишут бомбанитесь все трое,докажите великую теорию про быдло кодера ))
0
|
|
|
3 / 3 / 3
Регистрация: 10.03.2015
Сообщений: 62
|
|||||||
| 19.12.2015, 21:19 [ТС] | |||||||
|
Размер фигуры тоже может меняться. Я думал сначала сделать вычисление каждый раз, потестить, а потом уже вызывать метод только тогда, когда меняется размер или координаты фигуры.
Добавлено через 1 минуту Intronessia, Добавлено через 19 часов 19 минут Сделал так,
Добавлено через 4 минуты Как думаете, есть ли смысл сделать координаты вершин в системе координат от центра прямоугольника, т.е. центр(500,500), А(-15,-15), В(15,-15), С(15,15), D(-15,15). Или от некой другой точки. В данный момент они все от начала координат т.е. левого верхнего угла контейнера.
0
|
|||||||
|
|
|||
| 20.12.2015, 15:35 | |||
|
Добавлено через 14 минут
0
|
|||
| 20.12.2015, 15:35 | |
|
Помогаю со студенческими работами здесь
12
Расстояние от точки пересечения диагоналей до большей стороны прямоугольника Вращение объекта вокруг оси. Матрицы поворота.
Вращение прямоугольника вокруг оси
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|