Я представил очень грубую модель молекулы, которая состоит из 7 спиралей, и хотел бы спросить, есть ли возможность в любом случае позволить самим спиралям наклоняться (вращаться) определенным образом, чтобы взаимодействовать друг с другом.Для наглядности я вставляю изображение вывода моей программы (хотя для ортогональной проекции, поэтому оно выглядит как проекция трехмерной спирали на двухмерную плоскость).
Я включил код для разрыва одной спирали (все остальные одинаковые).
Было бы полезно хранить геометрию моих объектов в массивах вершин вместо того, чтобы каждый раз отображать их отдельно для 7 разных цветов?(Каждая спираль состоит из 36 000 вершин, и я обеспокоен тем, что массивы могут стать достаточно большими, чтобы вызвать серьезные проблемы с производительностью?)
Я понимаю, что матричный стек - это структура данных для выполнения нескольких последовательных отдельных преобразований для определенных объектов,но я не уверен, как именно указать, чтобы наклонить всю мою спираль?(glRotatef по какой-то причине фактически не наклоняет спирали)
/*HELIX RENDERING*/
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(0.0, 100.0, -5.0); //Move Position
glRotatef(90.0, 0.0, 0.0, 0.0);
glBegin(GL_LINE_STRIP);
for(theta = 0.0; theta <= 360.0; theta += 0.01) {
x = r*(cosf(theta));
y = r*(sinf(theta));
z = c*theta;
glVertex3f(x,y,z);
glColor3f(1.0, 1.0, 0.0);
}
glEnd();
glPopMatrix();