Я работаю над OpenGL Superbible (4-е издание). В главе 4 приведен пример вращения электронов вокруг ядра. (в основном небольшие сферы вокруг одной большой сферы).Перевод и ротация в OpenGL?
Вот выдержка функции рендеринга, которая рисует электрон (сферу) в определенном положении вокруг ядра (другой сферы). fElect1
- это угол, который увеличивается на 10 градусов при каждом вызове рендера.
glPushMatrix();
glRotatef(360.0f-45.0f,0.0f, 0.0f, 1.0f);
glRotatef(fElect1, 0.0f, 1.0f, 0.0f);
glTranslatef(0.0f, 0.0f, 60.0f);
glColor3ub(56,136,21);
glutSolidSphere(6.0f, 15, 15);
glPopMatrix()
Таким образом, он поворачивает вид на 315 градусов относительно оси z. А затем поворачивает представление о вновь повернутой оси y на угол fElect1
, а затем рисует сферу. то есть он хочет смоделировать орбиту электрона вокруг оси y. В результате электроны, по-видимому, движутся на «наклонной» орбите вокруг сферы (наклонены, так как ось х была наклонена на 315 градусов).
Но мой вопрос: почему он переводит на ось z? не означает ли это, что электрон имеет своего рода орбиту, где ядро не находится в центре его пути? Но это не похоже на то, когда я запускаю симуляцию.
Я, должно быть, пропустил ту часть, где он говорит, в каком порядке применяются преобразования. Это имеет гораздо больший смысл. – BeeBand