Когда я работал над своей докторской диссертацией, я написал симулятор, который делал то, что вы хотели сделать.Просто помните, что даже если ваш код может выглядеть объектно-ориентированным, движок OpenGL по-прежнему визуализирует вещи последовательно.Кроме того, последовательная природа матричной алгебры, которая скрыта в OpenGL, иногда не в том порядке, в котором вы логично думаете (когда я переводю, когда рисую, когда вращаю и т. Д.?).
Помните ЛОГОТИП назад в старые времена?У него была черепаха, которая была ручкой, и вы перемещали черепаху вокруг, и она рисовала линии.Если ручка была внизу, она рисовала, а если ручка была вверху, то нет.Именно так я и думал, когда работал над этой программой.Я бы начал «черепаху» с известной координаты (0, 0, 0) и использовал математические выражения для ее перевода (переместить ее в центр объекта, который я хочу нарисовать), а затем вызвал бы методы draw ()пытаюсь написать, чтобы нарисовать мою форму на основе относительной системы координат, где "черепаха", а не из абсолютного (0, 0, 0).Тогда я бы двигался, черепаха, рисовал и т. Д. Надеюсь, это поможет ...