Каждый начинающий работать с GLScene сталкивается с проблемой правильного расположения и долгой настройкой объекта на сцене. Начинают путаться с векторами и их направлением и когда нужно ставить “ - ”, этот процесс настройки убивает очень много времени. Попытаюсь объяснить как быстрей оседлать векторы.
Первое. ShowAxes. Чтобы легче было понять в каком направление двигать объект выставляем свойство ShowAxes:= True X – красная стрелочка. Y – зеленая стрелочка. Z – синяя стрелочка. Вот вам и система координат, теперь и “ - ” понятней где ставить.
Второе. Позиция. Для настройки положения статических объектов типа GLCube, GLSphere лучше использовать Object Inspector т.к. сразу видно что происходит с объектом и куда его двигать. Выбираем объект и меняем его свойства Position отвечающий за позицию объекта, там три параметра X,Y,Z при включенном ShowAxes все довольно просто.
А вот с FreeForm или Actor, Object Inspector я считаю не столь удобен, FreeForm и Actor не венды на форме пока не откомпилируешь проект, поэтому проще задавать кодом позицию объекта. Вот как можно задать кодом позицию объекта:
GLFreeForm.Translate(2,5,2); Позволяет корректировать позицию при уже указанных координатах, и может использоваться самостоятельно.
Для Actor аналогично. С позицией объекта думаю теперь все понятней.
Третье. Вращение. Не каждая загруженная FreeForm сразу становится под правильным углом. Есть несколько способов выставить правильный угол.
Первый способ позволяет выставить градус поворота. Если вы выставляете все три параметра, Y пишите последним как у меня. GLFreeForm.PitchAngle:=90; //Z GLFreeForm.TurnAngle:=180: //Y GLFreeForm.RollAngle:=30; //X
Или
Тоже указывается градус поворота. GLFreeForm.Pitch(90); //Z GLFreeForm.Turn(90); //Y GLFreeForm.Roll(90); //X
GLFreeForm.ResetAndPitchTurnRoll(30,90,180);
GLFreeForm.RotateAbsolute(30,90,180);
Второй способ, это выставление шага поворота. Есть два параметра отвечающие за шаг поворота это Up и Direction.
Допустим вы поместили несколько объектов в GLDummyCube и перевернули его то все объекты в нутрии его тоже перевернутся как и система координат и вам нужно уже задавать параметры по перевернутой системе координат, не забывайте об этом.
Думаю начинающим эта статья поможет понять что куда вертеть. Главное это уметь думать в трех мерном пространстве, да и после небольшой практики все становится предельно ясно.