![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть поезд, несколько вагонов, каждый вращается и двигается по-своему. Для рисования каждого вагона используется своя матрица (поворота и сдвига). Чтобы "сцепить вагоны", ну, грубо говоря, то есть чтоб нарисовать линию от одного к другому, мне надо сначала загрузить в опенгл одну матрицу, нарисовать точку (находящуюся на первом вагоне), потом загрузить другую матрицу, потом нарисовать вторую точку и провести между ними линию.
Так вот между заданиями координат точек загружать матрицу запрещено? У меня сложилось именно такое впечатление. И тут нельзя напрямую обратиться к области памяти, в которой находится эта самая матрица? Полный доступ к ней очень бы помог.
-------------------- |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Так вот между заданиями координат точек загружать матрицу запрещено? У меня сложилось именно такое впечатление. Правильное впечатление: MSDN -> glLoadMatrixЦитата The following is the error code and its condition. , то есть между glBegin/glEnd матрицу загружать нельзя.<...> GL_INVALID_OPERATION glLoadMatrix was called between a call to glBegin and the corresponding call to glEnd. |
TarasBer |
![]()
Сообщение
#3
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Какое-то надуманное ограничение...
А что же тогда делать? Я знаю координаты каждого конца отрезка. Для для одного конца - относительно матрицы mt1, а для другого - относительно матрицы mt2. И как тут выкручиваться? -------------------- |
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну хорошо, а если преобразовать координаты заранее, до начала рисования линии? Есть такая процедура? То есть на входе - матрица и 3 кодинаты точки, на выходе - 3 новые координаты?
Просто раньше, когда вагоны поворачивались только в 2 плоскостях, я вручную считал координаты точек, но когда появилась 3 плоскость вращения, это стало совсем неприлично. -------------------- |
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
В общем я решил проблему порнографическим способом - для каждого вагона я считал матрицу поворота, и потом в соответствии с ней преобразовывал точку. Но неужели нет нормального способа?
-------------------- |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 2:35 |